goatmail 1.0.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.
@@ -0,0 +1,44 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/helper')
2
+
3
+ describe Goatmail::DeliveryMethod do
4
+
5
+ let(:plain_file) { Dir["#{test_location}/*/plain.html"].first }
6
+ let(:meta_file) { Dir["#{test_location}/*/meta"].first }
7
+ let(:meta) { Marshal.load(File.read(meta_file)) }
8
+
9
+ it 'raises an exception if no location passed' do
10
+ Goatmail.location = nil
11
+ assert_raises(Goatmail::DeliveryMethod::InvalidOption) { Goatmail::DeliveryMethod.new }
12
+ Goatmail.location = test_location
13
+ Goatmail::DeliveryMethod.new
14
+ end
15
+
16
+ describe 'using deliver! method' do
17
+ before do
18
+ Mail.new {
19
+ from 'foo@example.com'
20
+ to 'bar@example.com'
21
+ subject 'Hello'
22
+ body 'World!'
23
+ }.deliver!
24
+ end
25
+
26
+ it 'creates plain html document' do
27
+ assert File.exist?(plain_file)
28
+ end
29
+ it 'creates meta data file' do
30
+ assert File.exist?(meta_file)
31
+ end
32
+ it 'saves a Subject into the meta data file' do
33
+ assert meta[:subject], 'Hello'
34
+ end
35
+ it 'saves a To into the meta data file' do
36
+ assert meta[:to], 'foo@example.com'
37
+ end
38
+ it 'saves a From into the meta data file' do
39
+ assert meta[:from], 'bar@example.com'
40
+ end
41
+
42
+ end
43
+
44
+ end
@@ -0,0 +1,46 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/helper')
2
+
3
+ describe Goatmail::Message do
4
+
5
+ before do
6
+ 2.times do
7
+ Mail.new {
8
+ from 'foo@example.com'
9
+ to 'bar@example.com'
10
+ subject 'Hello'
11
+ body 'World!'
12
+ }.deliver!
13
+ end
14
+ end
15
+
16
+ describe '.location' do
17
+ it 'return Goatmail#location' do
18
+ assert_equal Goatmail::Message.location, Goatmail.location
19
+ end
20
+ end
21
+
22
+ describe '.load_all' do
23
+ subject { Goatmail::Message.load_all }
24
+ it 'returns a list of messages' do
25
+ assert_equal subject.count, 2
26
+ end
27
+ end
28
+
29
+ describe '.find' do
30
+ let(:id) { '1111111111_1111111' }
31
+ subject { Goatmail::Message.find id }
32
+ it 'returns a message with id set' do
33
+ assert_equal subject.id, id
34
+ end
35
+ end
36
+
37
+ describe '.bulk_delete' do
38
+ it 'removes all specified messages' do
39
+ ids = Goatmail::Message.load_all.map(&:id)
40
+ assert_equal ids.count, 2
41
+ Goatmail::Message.bulk_delete(ids)
42
+ assert_equal Goatmail::Message.load_all.count, 0
43
+ end
44
+ end
45
+
46
+ end
metadata ADDED
@@ -0,0 +1,184 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: goatmail
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Takeshi Yabe
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2014-12-29 00:00:00 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: letter_opener
16
+ version_requirements: &id001 !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - &id002
19
+ - ">="
20
+ - !ruby/object:Gem::Version
21
+ version: "0"
22
+ requirement: *id001
23
+ type: :runtime
24
+ prerelease: false
25
+ - !ruby/object:Gem::Dependency
26
+ name: sinatra
27
+ version_requirements: &id003 !ruby/object:Gem::Requirement
28
+ requirements:
29
+ - *id002
30
+ requirement: *id003
31
+ type: :runtime
32
+ prerelease: false
33
+ - !ruby/object:Gem::Dependency
34
+ name: bundler
35
+ version_requirements: &id004 !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ~>
38
+ - !ruby/object:Gem::Version
39
+ version: "1.6"
40
+ requirement: *id004
41
+ type: :development
42
+ prerelease: false
43
+ - !ruby/object:Gem::Dependency
44
+ name: rake
45
+ version_requirements: &id005 !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - *id002
48
+ requirement: *id005
49
+ type: :development
50
+ prerelease: false
51
+ - !ruby/object:Gem::Dependency
52
+ name: minitest
53
+ version_requirements: &id006 !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - ~>
56
+ - !ruby/object:Gem::Version
57
+ version: "5.3"
58
+ requirement: *id006
59
+ type: :development
60
+ prerelease: false
61
+ - !ruby/object:Gem::Dependency
62
+ name: minitest-power_assert
63
+ version_requirements: &id007 !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - *id002
66
+ requirement: *id007
67
+ type: :development
68
+ prerelease: false
69
+ - !ruby/object:Gem::Dependency
70
+ name: rack-test
71
+ version_requirements: &id008 !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - *id002
74
+ requirement: *id008
75
+ type: :development
76
+ prerelease: false
77
+ - !ruby/object:Gem::Dependency
78
+ name: mail
79
+ version_requirements: &id009 !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - *id002
82
+ requirement: *id009
83
+ type: :development
84
+ prerelease: false
85
+ - !ruby/object:Gem::Dependency
86
+ name: capybara
87
+ version_requirements: &id010 !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - *id002
90
+ requirement: *id010
91
+ type: :development
92
+ prerelease: false
93
+ - !ruby/object:Gem::Dependency
94
+ name: capybara-webkit
95
+ version_requirements: &id011 !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - *id002
98
+ requirement: *id011
99
+ type: :development
100
+ prerelease: false
101
+ - !ruby/object:Gem::Dependency
102
+ name: capybara_minitest_spec
103
+ version_requirements: &id012 !ruby/object:Gem::Requirement
104
+ requirements:
105
+ - *id002
106
+ requirement: *id012
107
+ type: :development
108
+ prerelease: false
109
+ - !ruby/object:Gem::Dependency
110
+ name: poltergeist
111
+ version_requirements: &id013 !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - *id002
114
+ requirement: *id013
115
+ type: :development
116
+ prerelease: false
117
+ description: a Sinatra Application to browse the email sent by letter_opener
118
+ email: tyabe@nilidea.com
119
+ executables: []
120
+
121
+ extensions: []
122
+
123
+ extra_rdoc_files: []
124
+
125
+ files:
126
+ - .gitignore
127
+ - .travis.yml
128
+ - Gemfile
129
+ - LICENSE.txt
130
+ - README.md
131
+ - Rakefile
132
+ - goatmail.gemspec
133
+ - lib/goatmail.rb
134
+ - lib/goatmail/app.rb
135
+ - lib/goatmail/assets/fonts/glyphicons-halflings-regular.eot
136
+ - lib/goatmail/assets/fonts/glyphicons-halflings-regular.svg
137
+ - lib/goatmail/assets/fonts/glyphicons-halflings-regular.ttf
138
+ - lib/goatmail/assets/fonts/glyphicons-halflings-regular.woff
139
+ - lib/goatmail/assets/javascripts/application.js
140
+ - lib/goatmail/assets/javascripts/bootstrap.min.js
141
+ - lib/goatmail/assets/javascripts/jquery.min.js
142
+ - lib/goatmail/assets/javascripts/jquery.searcher.min.js
143
+ - lib/goatmail/assets/stylesheets/application.css
144
+ - lib/goatmail/assets/stylesheets/bootstrap.min.css
145
+ - lib/goatmail/delivery_method.rb
146
+ - lib/goatmail/message.rb
147
+ - lib/goatmail/railtie.rb
148
+ - lib/goatmail/version.rb
149
+ - lib/goatmail/views/index.erb
150
+ - lib/goatmail/views/layout.erb
151
+ - test/helper.rb
152
+ - test/test_app.rb
153
+ - test/test_delivery_method.rb
154
+ - test/test_message.rb
155
+ homepage: http://github.com/tyabe/goatmail
156
+ licenses:
157
+ - MIT
158
+ metadata: {}
159
+
160
+ post_install_message:
161
+ rdoc_options: []
162
+
163
+ require_paths:
164
+ - lib
165
+ required_ruby_version: !ruby/object:Gem::Requirement
166
+ requirements:
167
+ - - ">="
168
+ - !ruby/object:Gem::Version
169
+ version: 2.0.0
170
+ required_rubygems_version: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - *id002
173
+ requirements: []
174
+
175
+ rubyforge_project:
176
+ rubygems_version: 2.2.2
177
+ signing_key:
178
+ specification_version: 4
179
+ summary: Sinatra-based letter_opener web interface
180
+ test_files:
181
+ - test/helper.rb
182
+ - test/test_app.rb
183
+ - test/test_delivery_method.rb
184
+ - test/test_message.rb