mailhandler 1.0.36 → 1.0.37
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +2 -2
- data/Rakefile +2 -2
- data/lib/mailhandler.rb +13 -37
- data/lib/mailhandler/errors.rb +1 -5
- data/lib/mailhandler/receiver.rb +4 -22
- data/lib/mailhandler/receiving/base.rb +16 -45
- data/lib/mailhandler/receiving/filelist/base.rb +25 -49
- data/lib/mailhandler/receiving/filelist/filter/base.rb +10 -52
- data/lib/mailhandler/receiving/filelist/filter/email.rb +4 -44
- data/lib/mailhandler/receiving/folder.rb +16 -54
- data/lib/mailhandler/receiving/imap.rb +34 -78
- data/lib/mailhandler/receiving/mail.rb +5 -19
- data/lib/mailhandler/receiving/notification/console.rb +2 -18
- data/lib/mailhandler/receiving/notification/email.rb +5 -28
- data/lib/mailhandler/receiving/notification/email/content.rb +9 -20
- data/lib/mailhandler/receiving/notification/email/states.rb +1 -36
- data/lib/mailhandler/receiving/observer.rb +5 -16
- data/lib/mailhandler/sender.rb +2 -14
- data/lib/mailhandler/sending/api.rb +1 -7
- data/lib/mailhandler/sending/api_batch.rb +1 -13
- data/lib/mailhandler/sending/base.rb +1 -13
- data/lib/mailhandler/sending/smtp.rb +20 -22
- data/lib/mailhandler/version.rb +2 -2
- data/mailhandler.gemspec +14 -17
- data/readme.md +33 -8
- data/spec/spec_helper.rb +1 -5
- data/spec/unit/mailhandler/receiver_spec.rb +8 -30
- data/spec/unit/mailhandler/receiving/base_spec.rb +4 -14
- data/spec/unit/mailhandler/receiving/folder_spec.rb +61 -155
- data/spec/unit/mailhandler/receiving/imap_spec.rb +18 -42
- data/spec/unit/mailhandler/receiving/notification/console_spec.rb +6 -16
- data/spec/unit/mailhandler/receiving/notification/email/content_spec.rb +10 -44
- data/spec/unit/mailhandler/receiving/notification/email_spec.rb +9 -15
- data/spec/unit/mailhandler/sender_spec.rb +12 -23
- data/spec/unit/mailhandler/sending/sender_api_batch_spec.rb +7 -19
- data/spec/unit/mailhandler/sending/sender_api_spec.rb +4 -14
- data/spec/unit/mailhandler/sending/sender_smtp_spec.rb +24 -6
- data/spec/unit/mailhandler_spec.rb +33 -25
- metadata +2 -2
@@ -1,29 +1,19 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe MailHandler::Receiving::Notification::Console do
|
4
|
-
|
5
|
-
subject { MailHandler::Receiving::Notification::Console }
|
4
|
+
subject { MailHandler::Receiving::Notification::Console }
|
6
5
|
|
7
6
|
context 'notify of a delay' do
|
8
|
-
|
9
7
|
it '.notify' do
|
10
|
-
|
11
|
-
search
|
12
|
-
expect{ subject.new.notify(search) }.to output(/.+email delay: 0(9|1)0 seconds/).to_stdout
|
13
|
-
|
8
|
+
search = double('Search', started_at: Time.now - 10)
|
9
|
+
expect { subject.new.notify(search) }.to output(/.+email delay: 0(9|1)0 seconds/).to_stdout
|
14
10
|
end
|
15
|
-
|
16
11
|
end
|
17
12
|
|
18
13
|
context 'not notify of a delay' do
|
19
|
-
|
20
14
|
it '.notify' do
|
21
|
-
|
22
|
-
search
|
23
|
-
expect{ subject.new.notify(search) }.to output('').to_stdout
|
24
|
-
|
15
|
+
search = double('Search', started_at: Time.now + 5)
|
16
|
+
expect { subject.new.notify(search) }.to output('').to_stdout
|
25
17
|
end
|
26
|
-
|
27
18
|
end
|
28
|
-
|
29
|
-
end
|
19
|
+
end
|
@@ -1,105 +1,71 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe MailHandler::Receiving::Notification::EmailContent do
|
4
|
-
|
5
4
|
subject { MailHandler::Receiving::Notification::EmailContent.new }
|
6
5
|
|
7
6
|
let(:to) { 'john@example.com' }
|
8
7
|
let(:from) { 'igor@example.com' }
|
9
|
-
let(:options) {{ :
|
8
|
+
let(:options) { { test: 'test' } }
|
10
9
|
|
11
10
|
context '.email_received' do
|
12
|
-
|
13
11
|
it 'create email' do
|
14
|
-
|
15
12
|
expect(subject.retrieve(:received, options, 60, from, to)).to be_kind_of Mail::Message
|
16
|
-
|
17
13
|
end
|
18
14
|
|
19
15
|
context 'email content' do
|
20
|
-
|
21
16
|
it 'sender' do
|
22
|
-
|
23
17
|
expect(subject.retrieve(:received, options, 60, from, to)[:from].to_s).to eq from
|
24
|
-
|
25
18
|
end
|
26
19
|
|
27
20
|
it 'single recipient' do
|
28
|
-
|
29
21
|
expect(subject.retrieve(:received, options, 60, from, to)[:to].to_s).to eq to
|
30
|
-
|
31
22
|
end
|
32
23
|
|
33
24
|
it 'multiple recipients' do
|
34
|
-
|
35
25
|
to = 'john1@example.com, john2@example.com'
|
36
26
|
expect(subject.retrieve(:received, options, 60, from, to)[:to].to_s).to eq to
|
37
|
-
|
38
27
|
end
|
39
28
|
|
40
29
|
it 'subject - 1 minute delay' do
|
41
|
-
|
42
|
-
expect(subject.retrieve(:received, options, 60, from, to).subject).to eq "Received - delay was 1.0 minutes"
|
43
|
-
|
30
|
+
expect(subject.retrieve(:received, options, 60, from, to).subject).to eq 'Received - delay was 1.0 minutes'
|
44
31
|
end
|
45
32
|
|
46
33
|
it 'subject - 1.5 minute delay' do
|
47
|
-
|
48
|
-
expect(subject.retrieve(:received, options, 90, from, to).subject).to eq "Received - delay was 1.5 minutes"
|
49
|
-
|
34
|
+
expect(subject.retrieve(:received, options, 90, from, to).subject).to eq 'Received - delay was 1.5 minutes'
|
50
35
|
end
|
51
36
|
|
52
37
|
it 'body' do
|
53
|
-
|
54
|
-
|
55
|
-
to eq "Received - delay was 1.5 minutes - search by #{options}"
|
56
|
-
|
38
|
+
expect(subject.retrieve(:received, options, 90, from, to).body.to_s)
|
39
|
+
.to eq "Received - delay was 1.5 minutes - search by #{options}"
|
57
40
|
end
|
58
|
-
|
59
41
|
end
|
60
|
-
|
61
42
|
end
|
62
43
|
|
63
44
|
context '.email_delayed' do
|
64
|
-
|
65
45
|
it 'sender' do
|
66
|
-
|
67
46
|
expect(subject.retrieve(:delayed, options, 60, from, to)[:from].to_s).to eq from
|
68
|
-
|
69
47
|
end
|
70
48
|
|
71
49
|
it 'single recipient' do
|
72
|
-
|
73
50
|
expect(subject.retrieve(:delayed, options, 60, from, to)[:to].to_s).to eq to
|
74
|
-
|
75
51
|
end
|
76
52
|
|
77
53
|
it 'multiple recipients' do
|
78
|
-
|
79
54
|
to = 'john1@example.com, john2@example.com'
|
80
55
|
expect(subject.retrieve(:delayed, options, 60, from, to)[:to].to_s).to eq to
|
81
|
-
|
82
56
|
end
|
83
57
|
|
84
58
|
it 'subject - 1 minute delay' do
|
85
|
-
|
86
|
-
expect(subject.retrieve(:delayed, options, 60, from, to).subject).to eq "Over 1.0 minutes delay"
|
87
|
-
|
59
|
+
expect(subject.retrieve(:delayed, options, 60, from, to).subject).to eq 'Over 1.0 minutes delay'
|
88
60
|
end
|
89
61
|
|
90
62
|
it 'subject - 1.5 minute delay' do
|
91
|
-
|
92
|
-
expect(subject.retrieve(:delayed, options, 90, from, to).subject).to eq "Over 1.5 minutes delay"
|
93
|
-
|
63
|
+
expect(subject.retrieve(:delayed, options, 90, from, to).subject).to eq 'Over 1.5 minutes delay'
|
94
64
|
end
|
95
65
|
|
96
66
|
it 'body' do
|
97
|
-
|
98
|
-
|
99
|
-
to eq "Over 1.5 minutes delay - search by #{options}"
|
100
|
-
|
67
|
+
expect(subject.retrieve(:delayed, options, 90, from, to).body.to_s)
|
68
|
+
.to eq "Over 1.5 minutes delay - search by #{options}"
|
101
69
|
end
|
102
|
-
|
103
70
|
end
|
104
|
-
|
105
|
-
end
|
71
|
+
end
|
@@ -1,10 +1,9 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe MailHandler::Receiving::Notification::Email do
|
4
|
-
|
5
4
|
let(:search) { double('search') }
|
6
5
|
let(:sender) { double('sender') }
|
7
|
-
let(:notification) { MailHandler::Receiving::Notification::Email.new(sender, 'from@example.com', 'igor@example.com',1) }
|
6
|
+
let(:notification) { MailHandler::Receiving::Notification::Email.new(sender, 'from@example.com', 'igor@example.com', 1) }
|
8
7
|
|
9
8
|
before(:each) do
|
10
9
|
allow(sender).to receive(:send_email) { true }
|
@@ -12,14 +11,12 @@ describe MailHandler::Receiving::Notification::Email do
|
|
12
11
|
end
|
13
12
|
|
14
13
|
it '.create' do
|
15
|
-
|
16
|
-
aggregate_failures "init details" do
|
14
|
+
aggregate_failures 'init details' do
|
17
15
|
expect(notification.min_time_to_notify).to eq 1
|
18
16
|
expect(notification.max_time_to_notify).to eq nil
|
19
17
|
expect(notification.contacts).to eq 'igor@example.com'
|
20
18
|
expect(notification.sender).to eq sender
|
21
19
|
end
|
22
|
-
|
23
20
|
end
|
24
21
|
|
25
22
|
it '.notify' do
|
@@ -29,7 +26,6 @@ describe MailHandler::Receiving::Notification::Email do
|
|
29
26
|
end
|
30
27
|
|
31
28
|
context 'states' do
|
32
|
-
|
33
29
|
it 'no delay' do
|
34
30
|
allow(search).to receive(:started_at) { Time.now }
|
35
31
|
notification.notify(search)
|
@@ -37,29 +33,27 @@ describe MailHandler::Receiving::Notification::Email do
|
|
37
33
|
end
|
38
34
|
|
39
35
|
it 'delayed' do
|
40
|
-
allow(search).to receive(:started_at) { Time.now - 2}
|
36
|
+
allow(search).to receive(:started_at) { Time.now - 2 }
|
41
37
|
allow(search).to receive(:result) { false }
|
42
|
-
allow(notification).to receive(:send_email) {
|
38
|
+
allow(notification).to receive(:send_email) {}
|
43
39
|
notification.notify(search)
|
44
40
|
expect(notification.current_state).to be_kind_of MailHandler::Receiving::Notification::Delay
|
45
41
|
end
|
46
42
|
|
47
43
|
it 'received' do
|
48
|
-
allow(search).to receive(:started_at) { Time.now - 2}
|
44
|
+
allow(search).to receive(:started_at) { Time.now - 2 }
|
49
45
|
allow(search).to receive(:result) { true }
|
50
|
-
allow(notification).to receive(:send_email) {
|
46
|
+
allow(notification).to receive(:send_email) {}
|
51
47
|
notification.notify(search)
|
52
48
|
expect(notification.current_state).to be_kind_of MailHandler::Receiving::Notification::Received
|
53
49
|
end
|
54
50
|
|
55
51
|
it 'max delayed' do
|
56
|
-
allow(search).to receive(:started_at) { Time.now - 10}
|
52
|
+
allow(search).to receive(:started_at) { Time.now - 10 }
|
57
53
|
allow(search).to receive(:result) { false }
|
58
|
-
allow(notification).to receive(:send_email) {
|
54
|
+
allow(notification).to receive(:send_email) {}
|
59
55
|
notification.notify(search)
|
60
56
|
expect(notification.current_state).to be_kind_of MailHandler::Receiving::Notification::MaxDelay
|
61
57
|
end
|
62
|
-
|
63
58
|
end
|
64
|
-
|
65
|
-
end
|
59
|
+
end
|
@@ -1,60 +1,49 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe MailHandler::Sender do
|
4
|
-
|
5
4
|
subject { MailHandler::Sender }
|
6
5
|
|
7
6
|
let(:send_duration) { 3 }
|
8
|
-
let(:dispatcher)
|
7
|
+
let(:dispatcher) do
|
9
8
|
dispatcher = double('Dispatcher')
|
10
9
|
|
11
|
-
allow(dispatcher).to receive(:send) { sleep send_duration
|
10
|
+
allow(dispatcher).to receive(:send) { sleep send_duration; 'Sent' }
|
12
11
|
dispatcher
|
13
|
-
|
14
|
-
|
15
|
-
let(:mail) {
|
16
|
-
|
12
|
+
end
|
13
|
+
let(:mail) do
|
17
14
|
Mail.new do
|
18
|
-
from
|
19
|
-
to
|
20
|
-
subject
|
21
|
-
body
|
15
|
+
from 'sheldon@bigbangtheory.com'
|
16
|
+
to 'lenard@bigbangtheory.com'
|
17
|
+
subject 'Hello!'
|
18
|
+
body 'Hello Sheldon!'
|
22
19
|
end
|
23
|
-
|
24
|
-
}
|
20
|
+
end
|
25
21
|
|
26
22
|
let(:sender) { subject.new(dispatcher) }
|
27
23
|
|
28
24
|
it 'create' do
|
29
|
-
|
30
25
|
expect(sender).not_to be nil
|
31
|
-
|
32
26
|
end
|
33
27
|
|
34
28
|
it 'init details' do
|
35
|
-
|
36
|
-
aggregate_failures "sending details" do
|
29
|
+
aggregate_failures 'sending details' do
|
37
30
|
expect(sender.sending.started_at).to be nil
|
38
31
|
expect(sender.sending.finished_at).to be nil
|
39
32
|
expect(sender.sending.duration).to be nil
|
40
33
|
expect(sender.sending.response).to be nil
|
41
34
|
expect(sender.sending.email).to be nil
|
42
35
|
end
|
43
|
-
|
44
36
|
end
|
45
37
|
|
46
38
|
it '.send_email' do
|
47
|
-
|
48
39
|
sender.send_email(mail)
|
49
40
|
|
50
|
-
aggregate_failures
|
41
|
+
aggregate_failures 'sending details' do
|
51
42
|
expect(sender.sending.started_at).to be_within(1).of(Time.now - send_duration)
|
52
43
|
expect(sender.sending.finished_at).to be_within(1).of(Time.now)
|
53
44
|
expect(sender.sending.duration).to be_within(0.5).of(send_duration)
|
54
45
|
expect(sender.sending.response).to eq 'Sent'
|
55
46
|
expect(sender.sending.email).to be mail
|
56
47
|
end
|
57
|
-
|
58
48
|
end
|
59
|
-
|
60
|
-
end
|
49
|
+
end
|
@@ -1,49 +1,37 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe MailHandler::Sending::PostmarkBatchAPISender do
|
4
|
-
|
5
4
|
subject { MailHandler::Sending::PostmarkBatchAPISender }
|
6
5
|
|
7
6
|
let(:api_token) { '122878782' }
|
8
7
|
|
9
8
|
it 'create' do
|
10
|
-
|
11
9
|
sender = subject.new(api_token)
|
12
10
|
|
13
|
-
aggregate_failures
|
11
|
+
aggregate_failures 'init details' do
|
14
12
|
expect(sender.api_token).to eq api_token
|
15
13
|
expect(sender.type).to eq :postmark_api
|
16
14
|
expect(sender.use_ssl).to be false
|
17
15
|
expect(sender.host).to eq 'api.postmarkapp.com'
|
18
16
|
end
|
19
|
-
|
20
17
|
end
|
21
18
|
|
22
19
|
it '.send - invalid auth' do
|
23
|
-
|
24
20
|
sender = subject.new(api_token)
|
25
|
-
expect{sender.send([Mail.new])}.to raise_error Postmark::InvalidApiKeyError
|
26
|
-
|
21
|
+
expect { sender.send([Mail.new]) }.to raise_error Postmark::InvalidApiKeyError
|
27
22
|
end
|
28
23
|
|
29
24
|
context 'invalid sending object' do
|
30
|
-
|
31
25
|
it '.send with string parameter' do
|
32
|
-
|
33
26
|
sender = subject.new(api_token)
|
34
|
-
expect{sender.send('test')}
|
35
|
-
|
36
|
-
|
27
|
+
expect { sender.send('test') }
|
28
|
+
.to raise_error MailHandler::TypeError, 'Invalid type error, only Array of Mail::Message object types for sending allowed'
|
37
29
|
end
|
38
30
|
|
39
31
|
it '.send with incorrect array parameter' do
|
40
|
-
|
41
32
|
sender = subject.new(api_token)
|
42
|
-
expect{sender.send([1,2,2])}
|
43
|
-
|
44
|
-
|
33
|
+
expect { sender.send([1, 2, 2]) }
|
34
|
+
.to raise_error MailHandler::TypeError, 'Invalid type error, only Array of Mail::Message object types for sending allowed'
|
45
35
|
end
|
46
|
-
|
47
36
|
end
|
48
|
-
|
49
|
-
end
|
37
|
+
end
|
@@ -1,40 +1,30 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe MailHandler::Sending::PostmarkAPISender do
|
4
|
-
|
5
4
|
subject { MailHandler::Sending::PostmarkAPISender }
|
6
5
|
|
7
6
|
let(:api_token) { '122878782' }
|
8
7
|
|
9
8
|
it 'create' do
|
10
|
-
|
11
9
|
sender = subject.new(api_token)
|
12
10
|
|
13
|
-
aggregate_failures
|
11
|
+
aggregate_failures 'init details' do
|
14
12
|
expect(sender.api_token).to eq api_token
|
15
13
|
expect(sender.type).to eq :postmark_api
|
16
14
|
expect(sender.use_ssl).to be false
|
17
15
|
expect(sender.host).to eq 'api.postmarkapp.com'
|
18
16
|
end
|
19
|
-
|
20
17
|
end
|
21
18
|
|
22
19
|
it '.send - invalid auth' do
|
23
|
-
|
24
20
|
sender = subject.new(api_token)
|
25
|
-
expect{sender.send(Mail.new)}.to raise_error Postmark::InvalidApiKeyError
|
26
|
-
|
21
|
+
expect { sender.send(Mail.new) }.to raise_error Postmark::InvalidApiKeyError
|
27
22
|
end
|
28
23
|
|
29
24
|
context 'invalid sending object' do
|
30
|
-
|
31
25
|
it '.send' do
|
32
|
-
|
33
26
|
sender = subject.new(api_token)
|
34
|
-
expect{sender.send('test')}.to raise_error StandardError
|
35
|
-
|
27
|
+
expect { sender.send('test') }.to raise_error StandardError
|
36
28
|
end
|
37
|
-
|
38
29
|
end
|
39
|
-
|
40
|
-
end
|
30
|
+
end
|
@@ -1,22 +1,40 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe MailHandler::Sending::SMTPSender do
|
4
|
-
|
5
4
|
subject { MailHandler::Sending::SMTPSender }
|
6
5
|
|
7
6
|
context '.send' do
|
8
|
-
|
9
7
|
context 'invalid' do
|
10
|
-
|
11
8
|
it 'incorrect mail type' do
|
12
|
-
|
13
9
|
sender = subject.new
|
14
10
|
expect { sender.send('Test') }.to raise_error MailHandler::TypeError
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
context '.new' do
|
16
|
+
context 'smtp timeouts' do
|
17
|
+
it 'open' do
|
18
|
+
sender = subject.new
|
19
|
+
expect(sender.open_timeout).to be > 0
|
20
|
+
end
|
15
21
|
|
22
|
+
it 'read' do
|
23
|
+
sender = subject.new
|
24
|
+
expect(sender.read_timeout).to be > 0
|
16
25
|
end
|
26
|
+
end
|
17
27
|
|
28
|
+
it 'save response' do
|
29
|
+
expect(subject.new.save_response).to be false
|
18
30
|
end
|
19
31
|
|
20
|
-
|
32
|
+
it 'use ssl' do
|
33
|
+
expect(subject.new.use_ssl).to be false
|
34
|
+
end
|
21
35
|
|
22
|
-
|
36
|
+
it 'authentication' do
|
37
|
+
expect(subject.new.authentication).to eq 'plain'
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -1,59 +1,67 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe MailHandler::Handler do
|
4
|
-
|
5
4
|
subject { MailHandler::Handler.new }
|
6
5
|
|
7
6
|
context 'receiver' do
|
8
|
-
|
9
7
|
it 'create - invalid type' do
|
10
|
-
|
11
|
-
|
12
|
-
to raise_error(MailHandler::TypeError, 'Unknown type - test, possible options: [:folder, :imap].')
|
13
|
-
|
8
|
+
expect { subject.init_receiver(:test) }
|
9
|
+
.to raise_error(MailHandler::TypeError, 'Unknown type - test, possible options: [:folder, :imap].')
|
14
10
|
end
|
15
11
|
|
16
12
|
it 'create - folder' do
|
17
|
-
|
18
13
|
expect(subject.init_receiver(:folder)).to be_kind_of MailHandler::Receiver
|
19
|
-
|
20
14
|
end
|
21
15
|
|
22
16
|
it 'create - imap' do
|
23
|
-
|
24
17
|
expect(subject.init_receiver(:imap)).to be_kind_of MailHandler::Receiver
|
25
|
-
|
26
18
|
end
|
27
|
-
|
28
19
|
end
|
29
20
|
|
30
21
|
context 'init_sender' do
|
31
|
-
|
32
22
|
it 'create - invalid type' do
|
33
|
-
|
34
|
-
|
35
|
-
to raise_error(MailHandler::TypeError, 'Unknown type - test, possible options: [:postmark_api, :postmark_batch_api, :smtp].')
|
36
|
-
|
23
|
+
expect { subject.init_sender(:test) }
|
24
|
+
.to raise_error(MailHandler::TypeError, 'Unknown type - test, possible options: [:postmark_api, :postmark_batch_api, :smtp].')
|
37
25
|
end
|
38
26
|
|
39
27
|
it 'create - postmark api' do
|
40
|
-
|
41
28
|
expect(subject.init_sender(:postmark_api)).to be_kind_of MailHandler::Sender
|
42
|
-
|
43
29
|
end
|
44
30
|
|
45
31
|
it 'create - postmark batch api' do
|
46
|
-
|
47
32
|
expect(subject.init_sender(:postmark_batch_api)).to be_kind_of MailHandler::Sender
|
48
|
-
|
49
33
|
end
|
50
34
|
|
51
|
-
|
35
|
+
context 'smtp' do
|
36
|
+
it 'create - smtp' do
|
37
|
+
expect(subject.init_sender(:smtp)).to be_kind_of MailHandler::Sender
|
38
|
+
end
|
52
39
|
|
53
|
-
|
40
|
+
context 'set delivery methods' do
|
41
|
+
it 'save response' do
|
42
|
+
sender = MailHandler.sender(:smtp) do |dispatcher|
|
43
|
+
dispatcher.save_response = true
|
44
|
+
end
|
54
45
|
|
55
|
-
|
46
|
+
expect(sender.dispatcher.save_response).to be true
|
47
|
+
end
|
56
48
|
|
57
|
-
|
49
|
+
it 'open timeout' do
|
50
|
+
sender = MailHandler.sender(:smtp) do |dispatcher|
|
51
|
+
dispatcher.open_timeout = 30
|
52
|
+
end
|
53
|
+
|
54
|
+
expect(sender.dispatcher.open_timeout).to be 30
|
55
|
+
end
|
56
|
+
|
57
|
+
it 'read timeout' do
|
58
|
+
sender = MailHandler.sender(:smtp) do |dispatcher|
|
59
|
+
dispatcher.read_timeout = 30
|
60
|
+
end
|
58
61
|
|
59
|
-
|
62
|
+
expect(sender.dispatcher.read_timeout).to be 30
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|