postageapp 1.3.0 → 1.4.2
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 +5 -5
- data/.gitignore +6 -0
- data/.travis.yml +9 -39
- data/{LICENSE → LICENSE.md} +1 -1
- data/README.md +117 -13
- data/Rakefile +15 -4
- data/VERSION +1 -0
- data/app/ingresses/action_mailbox/ingresses/postage_app/inbound_emails_controller.rb +52 -0
- data/app/ingresses/action_mailbox/ingresses/postage_app.rb +4 -0
- data/config/routes.rb +8 -0
- data/exe/postageapp +37 -0
- data/lib/generators/postageapp/postageapp_generator.rb +9 -6
- data/lib/postageapp/cli/command/config.rb +74 -0
- data/lib/postageapp/cli/command/create_mailbox.rb +21 -0
- data/lib/postageapp/cli/command/env.rb +58 -0
- data/lib/postageapp/cli/command/get_project_info.rb +3 -0
- data/lib/postageapp/cli/command.rb +110 -0
- data/lib/postageapp/cli.rb +14 -0
- data/lib/postageapp/configuration.rb +237 -74
- data/lib/postageapp/engine.rb +11 -0
- data/lib/postageapp/env.rb +9 -0
- data/lib/postageapp/mailer/mailer_4.rb +30 -14
- data/lib/postageapp/mailer.rb +1 -11
- data/lib/postageapp/rails/railtie.rb +1 -3
- data/lib/postageapp/request.rb +6 -1
- data/lib/postageapp.rb +53 -35
- data/log/.gitignore +1 -0
- data/postageapp.gemspec +7 -10
- data/script/with +2 -2
- data/test/gemfiles/Gemfile.rails-2.3.x +1 -1
- data/test/gemfiles/Gemfile.rails-3.0.x +1 -1
- data/test/gemfiles/Gemfile.rails-3.1.x +1 -1
- data/test/gemfiles/Gemfile.rails-3.2.x +1 -1
- data/test/gemfiles/Gemfile.rails-4.0.x +1 -1
- data/test/gemfiles/Gemfile.rails-4.1.x +1 -1
- data/test/gemfiles/Gemfile.rails-4.2.x +1 -2
- data/test/gemfiles/Gemfile.rails-5.0.x +2 -3
- data/test/gemfiles/Gemfile.rails-5.2.x +12 -0
- data/test/gemfiles/Gemfile.rails-6.0.x +12 -0
- data/test/gemfiles/Gemfile.rails-6.1.x +12 -0
- data/test/gemfiles/Gemfile.ruby +2 -3
- data/test/helper.rb +5 -3
- data/test/log/.gitignore +1 -0
- data/test/mailer/action_mailer_3/notifier.rb +1 -1
- data/test/tmp/.gitignore +1 -0
- data/test/travis_test.rb +58 -40
- data/test/{configuration_test.rb → unit/configuration_test.rb} +18 -12
- data/test/{failed_request_test.rb → unit/failed_request_test.rb} +6 -6
- data/test/{live_test.rb → unit/live_test.rb} +4 -39
- data/test/{mail_delivery_method_test.rb → unit/mail_delivery_method_test.rb} +1 -1
- data/test/{mailer_4_test.rb → unit/mailer_4_test.rb} +2 -2
- data/test/{mailer_helper_methods_test.rb → unit/mailer_helper_methods_test.rb} +4 -4
- data/test/{postageapp_test.rb → unit/postageapp_test.rb} +7 -1
- data/test/{rails_initialization_test.rb → unit/rails_initialization_test.rb} +2 -2
- data/test/{request_test.rb → unit/request_test.rb} +18 -17
- data/test/{response_test.rb → unit/response_test.rb} +4 -4
- data/test/unit/tmp/.gitignore +1 -0
- data/tmp/.gitignore +1 -0
- metadata +41 -48
- data/lib/postageapp/mailer/mailer_2.rb +0 -140
- data/lib/postageapp/mailer/mailer_3.rb +0 -190
- data/lib/postageapp/version.rb +0 -3
- data/test/mailer/action_mailer_2/notifier/with_body_and_attachment.erb +0 -1
- data/test/mailer/action_mailer_2/notifier/with_custom_postage_variables.text.html.erb +0 -1
- data/test/mailer/action_mailer_2/notifier/with_custom_postage_variables.text.plain.erb +0 -1
- data/test/mailer/action_mailer_2/notifier/with_html_and_text_views.text.html.erb +0 -1
- data/test/mailer/action_mailer_2/notifier/with_html_and_text_views.text.plain.erb +0 -1
- data/test/mailer/action_mailer_2/notifier/with_simple_view.erb +0 -1
- data/test/mailer/action_mailer_2/notifier/with_text_only_view.text.plain.erb +0 -1
- data/test/mailer/action_mailer_2/notifier.rb +0 -77
- data/test/mailer_2_test.rb +0 -95
- data/test/mailer_3_test.rb +0 -118
data/lib/postageapp/version.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
body text
|
@@ -1 +0,0 @@
|
|
1
|
-
html content
|
@@ -1 +0,0 @@
|
|
1
|
-
text content
|
@@ -1 +0,0 @@
|
|
1
|
-
html and text: html
|
@@ -1 +0,0 @@
|
|
1
|
-
html and text: plain text
|
@@ -1 +0,0 @@
|
|
1
|
-
simple view content
|
@@ -1 +0,0 @@
|
|
1
|
-
text only: plain text
|
@@ -1,77 +0,0 @@
|
|
1
|
-
# Test mailer for ActionMailer 2.x
|
2
|
-
|
3
|
-
class Notifier < PostageApp::Mailer
|
4
|
-
self.template_root = File.dirname(__FILE__)
|
5
|
-
|
6
|
-
def blank
|
7
|
-
# Empty method
|
8
|
-
end
|
9
|
-
|
10
|
-
def with_no_content
|
11
|
-
setup_headers
|
12
|
-
end
|
13
|
-
|
14
|
-
def with_text_only_view
|
15
|
-
setup_headers
|
16
|
-
end
|
17
|
-
|
18
|
-
def with_html_and_text_views
|
19
|
-
setup_headers
|
20
|
-
end
|
21
|
-
|
22
|
-
def with_simple_view
|
23
|
-
setup_headers
|
24
|
-
end
|
25
|
-
|
26
|
-
def with_manual_parts
|
27
|
-
setup_headers
|
28
|
-
|
29
|
-
part(
|
30
|
-
:content_type => 'text/html',
|
31
|
-
:body => 'html content'
|
32
|
-
)
|
33
|
-
|
34
|
-
part(
|
35
|
-
content_type: 'text/plain',
|
36
|
-
body: 'text content'
|
37
|
-
)
|
38
|
-
|
39
|
-
attachment(
|
40
|
-
content_type: 'image/jpeg',
|
41
|
-
filename: 'foo.jpg',
|
42
|
-
body: '123456789'
|
43
|
-
)
|
44
|
-
end
|
45
|
-
|
46
|
-
def with_body_and_attachment
|
47
|
-
setup_headers
|
48
|
-
|
49
|
-
attachment(
|
50
|
-
content_type: 'image/jpeg',
|
51
|
-
filename: 'foo.jpg',
|
52
|
-
body: '123456789'
|
53
|
-
)
|
54
|
-
end
|
55
|
-
|
56
|
-
def with_custom_postage_variables
|
57
|
-
postageapp_template 'test-template'
|
58
|
-
postageapp_variables 'variable' => 'value'
|
59
|
-
postageapp_uid 'custom_uid'
|
60
|
-
postageapp_api_key 'custom_api_key'
|
61
|
-
|
62
|
-
from 'sender@example.com'
|
63
|
-
subject 'Test Email'
|
64
|
-
|
65
|
-
recipients(
|
66
|
-
'test1@example.net' => { 'name' => 'Test 1' },
|
67
|
-
'test2@example.net' => { 'name' => 'Test 2' }
|
68
|
-
)
|
69
|
-
end
|
70
|
-
|
71
|
-
private
|
72
|
-
def setup_headers
|
73
|
-
recipients 'recipient@example.net'
|
74
|
-
from 'sender@example.com'
|
75
|
-
subject 'Test Email'
|
76
|
-
end
|
77
|
-
end
|
data/test/mailer_2_test.rb
DELETED
@@ -1,95 +0,0 @@
|
|
1
|
-
require_relative './helper'
|
2
|
-
|
3
|
-
class Mailer2Test < MiniTest::Test
|
4
|
-
require_action_mailer(2) do
|
5
|
-
require File.expand_path('mailer/action_mailer_2/notifier', File.dirname(__FILE__))
|
6
|
-
|
7
|
-
puts "\e[0m\e[32mRunning #{File.basename(__FILE__)} for action_mailer #{ActionMailer::VERSION::STRING}\e[0m"
|
8
|
-
|
9
|
-
def test_create_blank
|
10
|
-
assert mail = Notifier.create_blank
|
11
|
-
|
12
|
-
assert_equal 'send_message', mail.method
|
13
|
-
assert_equal 'https://api.postageapp.com/v.1.0/send_message.json', mail.url.to_s
|
14
|
-
assert mail.arguments.blank?
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_create_with_no_content
|
18
|
-
assert mail = Notifier.create_with_no_content
|
19
|
-
|
20
|
-
assert_equal 'recipient@example.net', mail.arguments['recipients']
|
21
|
-
assert_equal({ 'from' => 'sender@example.com', 'subject' => 'Test Email' }, mail.arguments['headers'])
|
22
|
-
assert mail.arguments['content'].blank?
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_create_with_text_only_view
|
26
|
-
assert mail = Notifier.create_with_text_only_view
|
27
|
-
|
28
|
-
assert_equal 'text only: plain text', mail.arguments['content']['text/plain']
|
29
|
-
end
|
30
|
-
|
31
|
-
def test_create_with_html_and_text_views
|
32
|
-
assert mail = Notifier.create_with_html_and_text_views
|
33
|
-
|
34
|
-
assert_equal 'html and text: plain text', mail.arguments['content']['text/plain']
|
35
|
-
assert_equal 'html and text: html', mail.arguments['content']['text/html']
|
36
|
-
end
|
37
|
-
|
38
|
-
def test_deliver_with_html_and_text_views
|
39
|
-
mock_successful_send
|
40
|
-
|
41
|
-
assert response = Notifier.deliver_with_html_and_text_views
|
42
|
-
|
43
|
-
assert response.is_a?(PostageApp::Response)
|
44
|
-
assert response.ok?
|
45
|
-
end
|
46
|
-
|
47
|
-
def test_create_with_simple_view
|
48
|
-
assert mail = Notifier.create_with_simple_view
|
49
|
-
assert_equal 'simple view content', mail.arguments['content']['text/plain']
|
50
|
-
end
|
51
|
-
|
52
|
-
def test_create_with_manual_parts
|
53
|
-
assert mail = Notifier.create_with_manual_parts
|
54
|
-
|
55
|
-
assert_equal 'text content', mail.arguments['content']['text/plain']
|
56
|
-
assert_equal 'html content', mail.arguments['content']['text/html']
|
57
|
-
assert !mail.arguments['attachments'].blank?
|
58
|
-
assert !mail.arguments['attachments']['foo.jpg']['content'].blank?
|
59
|
-
assert_equal 'image/jpeg', mail.arguments['attachments']['foo.jpg']['content_type']
|
60
|
-
end
|
61
|
-
|
62
|
-
def test_create_with_body_and_attachment
|
63
|
-
assert mail = Notifier.create_with_body_and_attachment
|
64
|
-
|
65
|
-
assert !mail.arguments['content'].blank?
|
66
|
-
assert !mail.arguments['content']['text/plain'].blank?
|
67
|
-
assert_equal 'body text', mail.arguments['content']['text/plain']
|
68
|
-
assert !mail.arguments['attachments'].blank?
|
69
|
-
assert !mail.arguments['attachments']['foo.jpg']['content'].blank?
|
70
|
-
assert_equal 'image/jpeg', mail.arguments['attachments']['foo.jpg']['content_type']
|
71
|
-
end
|
72
|
-
|
73
|
-
def test_create_with_custom_postage_variables
|
74
|
-
assert mail = Notifier.create_with_custom_postage_variables
|
75
|
-
|
76
|
-
assert_equal 'custom_uid', mail.uid
|
77
|
-
assert_equal 'custom_api_key', mail.api_key
|
78
|
-
assert_equal 'test-template', mail.arguments['template']
|
79
|
-
assert_equal({ 'variable' => 'value' }, mail.arguments['variables'])
|
80
|
-
assert_equal({ 'test2@example.net' => { 'name' => 'Test 2'},
|
81
|
-
'test1@example.net' => { 'name' => 'Test 1'}}, mail.arguments['recipients'])
|
82
|
-
assert_equal 'text content', mail.arguments['content']['text/plain']
|
83
|
-
assert_equal 'html content', mail.arguments['content']['text/html']
|
84
|
-
end
|
85
|
-
|
86
|
-
def test_create_with_recipient_override
|
87
|
-
PostageApp.configuration.recipient_override = 'override@example.net'
|
88
|
-
|
89
|
-
assert mail = Notifier.create_with_html_and_text_views
|
90
|
-
|
91
|
-
assert_equal 'recipient@example.net', mail.arguments['recipients']
|
92
|
-
assert_equal 'override@example.net', mail.arguments_to_send['arguments']['recipient_override']
|
93
|
-
end
|
94
|
-
end
|
95
|
-
end
|
data/test/mailer_3_test.rb
DELETED
@@ -1,118 +0,0 @@
|
|
1
|
-
require_relative './helper'
|
2
|
-
|
3
|
-
class Mailer3Test < MiniTest::Test
|
4
|
-
require_action_mailer(3) do
|
5
|
-
require File.expand_path('mailer/action_mailer_3/notifier', File.dirname(__FILE__))
|
6
|
-
|
7
|
-
puts "\e[0m\e[32mRunning #{File.basename(__FILE__)} for action_mailer #{ActionMailer::VERSION::STRING}\e[0m"
|
8
|
-
|
9
|
-
def test_create_with_no_content
|
10
|
-
mail = Notifier.with_no_content
|
11
|
-
|
12
|
-
assert_equal({ }, mail.arguments['content'])
|
13
|
-
end
|
14
|
-
|
15
|
-
def test_create_with_no_subject
|
16
|
-
mail = Notifier.with_no_subject
|
17
|
-
|
18
|
-
assert mail.arguments['headers'][:subject].nil?
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_create_with_simple_view
|
22
|
-
mail = Notifier.with_simple_view
|
23
|
-
|
24
|
-
assert_equal 'with layout simple view content', mail.arguments['content']['text/html']
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_create_with_text_only_view
|
28
|
-
mail = Notifier.with_text_only_view
|
29
|
-
|
30
|
-
assert_equal 'text content', mail.arguments['content']['text/plain']
|
31
|
-
end
|
32
|
-
|
33
|
-
def test_create_with_html_and_text_views
|
34
|
-
mail = Notifier.with_html_and_text_views
|
35
|
-
|
36
|
-
assert_equal 'text content', mail.arguments['content']['text/plain']
|
37
|
-
assert_equal 'with layout html content', mail.arguments['content']['text/html']
|
38
|
-
end
|
39
|
-
|
40
|
-
def test_deliver_with_html_and_text_views
|
41
|
-
mock_successful_send
|
42
|
-
|
43
|
-
assert response = Notifier.with_html_and_text_views.deliver
|
44
|
-
assert response.is_a?(PostageApp::Response)
|
45
|
-
assert response.ok?
|
46
|
-
end
|
47
|
-
|
48
|
-
def test_create_with_body_and_attachment_as_file
|
49
|
-
mail = Notifier.with_body_and_attachment_as_file
|
50
|
-
|
51
|
-
assert_equal 'manual body text', mail.arguments['content']['text/html']
|
52
|
-
assert_equal 'text/plain', mail.arguments['attachments']['sample_file.txt']['content_type']
|
53
|
-
assert_equal "RmlsZSBjb250ZW50\n", mail.arguments['attachments']['sample_file.txt']['content']
|
54
|
-
end
|
55
|
-
|
56
|
-
def test_create_with_body_and_attachment_as_hash
|
57
|
-
mail = Notifier.with_body_and_attachment_as_hash
|
58
|
-
|
59
|
-
assert_equal 'manual body text', mail.arguments['content']['text/html']
|
60
|
-
assert_equal 'text/rich', mail.arguments['attachments']['sample_file.txt']['content_type']
|
61
|
-
assert_equal "RmlsZSBjb250ZW50\n", mail.arguments['attachments']['sample_file.txt']['content']
|
62
|
-
end
|
63
|
-
|
64
|
-
def test_create_with_custom_postage_variables
|
65
|
-
mail = Notifier.with_custom_postage_variables
|
66
|
-
|
67
|
-
args = mail.arguments_to_send
|
68
|
-
|
69
|
-
assert_equal 'custom_uid', args['uid']
|
70
|
-
assert_equal 'custom_api_key', args['api_key']
|
71
|
-
|
72
|
-
args = args['arguments']
|
73
|
-
|
74
|
-
assert_equal(
|
75
|
-
{
|
76
|
-
'test1@example.net' => { 'name' => 'Test 1' },
|
77
|
-
'test2@example.net' => { 'name' => 'Test 2' }
|
78
|
-
},
|
79
|
-
args['recipients']
|
80
|
-
)
|
81
|
-
|
82
|
-
assert_equal 'test-template', args['template']
|
83
|
-
assert_equal({ 'variable' => 'value' }, args['variables'])
|
84
|
-
assert_equal 'CustomValue1', args['headers']['CustomHeader1']
|
85
|
-
assert_equal 'CustomValue2', args['headers']['CustomHeader2']
|
86
|
-
assert_equal 'text content', args['content']['text/plain']
|
87
|
-
assert_equal 'with layout html content', args['content']['text/html']
|
88
|
-
end
|
89
|
-
|
90
|
-
def test_create_with_recipient_override
|
91
|
-
PostageApp.configuration.recipient_override = 'override@example.net'
|
92
|
-
|
93
|
-
assert mail = Notifier.with_html_and_text_views
|
94
|
-
|
95
|
-
assert_equal 'recipient@example.net', mail.arguments['recipients']
|
96
|
-
assert_equal 'override@example.net', mail.arguments_to_send['arguments']['recipient_override']
|
97
|
-
end
|
98
|
-
|
99
|
-
def test_deliver_for_test_mailer
|
100
|
-
mail = Notifier.with_simple_view
|
101
|
-
|
102
|
-
mail.delivery_method(Mail::TestMailer)
|
103
|
-
mail.deliver
|
104
|
-
|
105
|
-
assert_equal [ mail ], ActionMailer::Base.deliveries
|
106
|
-
end
|
107
|
-
|
108
|
-
def test_deliver_for_not_performing_deliveries_with_test_mailer
|
109
|
-
mail = Notifier.with_simple_view
|
110
|
-
|
111
|
-
mail.perform_deliveries = false
|
112
|
-
mail.delivery_method(Mail::TestMailer)
|
113
|
-
mail.deliver
|
114
|
-
|
115
|
-
assert_equal [ ], ActionMailer::Base.deliveries
|
116
|
-
end
|
117
|
-
end
|
118
|
-
end
|