mms2r 1.0.7 → 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.
- data/History.txt +19 -1
- data/Manifest.txt +38 -19
- data/README.txt +40 -8
- data/Rakefile +2 -2
- data/conf/mms2r_cingular_me_media_subject.yml +3 -0
- data/conf/{mms2r_cingularmedia_transform.yml → mms2r_cingular_me_media_transform.yml} +1 -0
- data/conf/mms2r_dobson_media_ignore.yml +4 -0
- data/conf/mms2r_media_ignore.yml +4 -0
- data/conf/mms2r_media_subject.yml +3 -0
- data/conf/mms2r_my_cingular_media_subject.yml +3 -0
- data/conf/mms2r_nextel_media_ignore.yml +11 -0
- data/conf/mms2r_sprint_media_ignore.yml +5 -0
- data/conf/mms2r_sprint_media_subject.yml +3 -0
- data/conf/{mms2r_tmobilemedia_ignore.yml → mms2r_t_mobile_media_ignore.yml} +2 -5
- data/conf/mms2r_verizon_media_ignore.yml +4 -0
- data/conf/mms2r_verizon_media_transform.yml +6 -0
- data/dev_tools/debug_sprint_hpricot_parsing.rb +82 -0
- data/lib/mms2r.rb +61 -0
- data/lib/mms2r/cingular_me_media.rb +23 -0
- data/lib/mms2r/dobson_media.rb +4 -5
- data/lib/mms2r/{mmode_media.rb → m_mode_media.rb} +4 -4
- data/lib/mms2r/media.rb +283 -160
- data/lib/mms2r/my_cingular_media.rb +15 -0
- data/lib/mms2r/nextel_media.rb +9 -3
- data/lib/mms2r/sprint_media.rb +137 -29
- data/lib/mms2r/sprint_pcs_media.rb +16 -0
- data/lib/mms2r/t_mobile_media.rb +21 -0
- data/lib/mms2r/verizon_media.rb +11 -3
- data/lib/mms2r/vtext_media.rb +16 -0
- data/test/files/cingularme-text-02.mail +14 -0
- data/test/files/hello_world_empty_text.mail +6 -0
- data/test/files/hello_world_mail_multipart.mail +7 -0
- data/test/files/{cingular-image-01.mail → mycingular-image-01.mail} +0 -0
- data/test/files/simple-with-two-images-two-texts.mail +49 -0
- data/test/files/{sprint-image-02.mail → sprint-broken-image-01.mail} +1 -1
- data/test/files/sprint-image-01.mail +1 -1
- data/test/files/sprint-pcs-text-01.mail +8 -0
- data/test/files/sprint-text-01.mail +195 -8
- data/test/files/sprint-two-images-01.mail +198 -0
- data/test/files/sprint-video-01.mail +1 -1
- data/test/files/verizon-image-02.mail +1 -1
- data/test/files/vtext-text-01.mail +1 -1
- data/test/test_mms2r_cingular_me_media.rb +51 -0
- data/test/test_mms2r_dobson_media.rb +46 -0
- data/test/{test_mms2r_mmode.rb → test_mms2r_m_mode_media.rb} +1 -1
- data/test/test_mms2r_media.rb +160 -74
- data/test/test_mms2r_my_cingular_media.rb +31 -0
- data/test/test_mms2r_nextel_media.rb +100 -0
- data/test/test_mms2r_sprint_media.rb +221 -0
- data/test/test_mms2r_sprint_pcs_media.rb +27 -0
- data/test/{test_mms2r_tmobile.rb → test_mms2r_t_mobile_media.rb} +13 -13
- data/test/test_mms2r_verizon_media.rb +96 -0
- data/test/test_mms2r_vtext_media.rb +28 -0
- data/vendor/plugins/mms2r/lib/autotest/discover.rb +3 -0
- data/vendor/plugins/mms2r/lib/autotest/mms2r.rb +33 -0
- metadata +62 -37
- data/conf/mms2r_nextelmedia_ignore.yml +0 -10
- data/conf/mms2r_sprintmedia_ignore.yml +0 -10
- data/conf/mms2r_verizonmedia_ignore.yml +0 -3
- data/conf/mms2r_verizonmedia_transform.yml +0 -3
- data/lib/mms2r/cingular_media.rb +0 -11
- data/lib/mms2r/tmobile_media.rb +0 -11
- data/lib/mms2r/version.rb +0 -12
- data/test/test_mms2r_cingular.rb +0 -58
- data/test/test_mms2r_dobson.rb +0 -36
- data/test/test_mms2r_nextel.rb +0 -132
- data/test/test_mms2r_sprint.rb +0 -174
- data/test/test_mms2r_verizon.rb +0 -102
@@ -0,0 +1,31 @@
|
|
1
|
+
$:.unshift File.join(File.dirname(__FILE__), "..", "lib")
|
2
|
+
require File.dirname(__FILE__) + "/test_helper"
|
3
|
+
require 'test/unit'
|
4
|
+
require 'rubygems'
|
5
|
+
require 'mms2r'
|
6
|
+
require 'mms2r/media'
|
7
|
+
require 'tmail/mail'
|
8
|
+
require 'logger'
|
9
|
+
|
10
|
+
class MMS2R::MyCingularMediaTest < Test::Unit::TestCase
|
11
|
+
include MMS2R::TestHelper
|
12
|
+
|
13
|
+
def test_image
|
14
|
+
mail = TMail::Mail.parse(load_mail('mycingular-image-01.mail').join)
|
15
|
+
mms = MMS2R::Media.create(mail)
|
16
|
+
assert_equal(MMS2R::MyCingularMedia, mms.class, "expected a #{MMS2R::MyCingularMedia} and received a #{mms.class}")
|
17
|
+
mms.process
|
18
|
+
|
19
|
+
assert_equal 2, mms.media.size, "Size is #{mms.media.size}"
|
20
|
+
assert_not_nil mms.media['text/plain']
|
21
|
+
assert_not_nil mms.media['image/jpeg'][0]
|
22
|
+
assert_match(/04-18-07_1723.jpg$/, mms.media['image/jpeg'][0])
|
23
|
+
|
24
|
+
assert_equal "", mms.get_subject, "Default Cingular subject not stripped"
|
25
|
+
assert_file_size mms.media['image/jpeg'][0], 337
|
26
|
+
|
27
|
+
assert_equal "Water", IO.readlines(mms.get_text.path).join
|
28
|
+
|
29
|
+
mms.purge
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,100 @@
|
|
1
|
+
$:.unshift File.join(File.dirname(__FILE__), "..", "lib")
|
2
|
+
require File.dirname(__FILE__) + "/test_helper"
|
3
|
+
require 'test/unit'
|
4
|
+
require 'rubygems'
|
5
|
+
require 'mms2r'
|
6
|
+
require 'mms2r/media'
|
7
|
+
require 'tmail/mail'
|
8
|
+
require 'logger'
|
9
|
+
|
10
|
+
class MMS2R::NextelMediaTest < Test::Unit::TestCase
|
11
|
+
include MMS2R::TestHelper
|
12
|
+
|
13
|
+
def test_simple_get_text_is_nil
|
14
|
+
mail = TMail::Mail.parse(load_mail('nextel-image-01.mail').join)
|
15
|
+
mms = MMS2R::Media.create(mail)
|
16
|
+
mms.process
|
17
|
+
|
18
|
+
assert_nil mms.get_text
|
19
|
+
|
20
|
+
mms.purge
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_simple_get_media
|
24
|
+
mail = TMail::Mail.parse(load_mail('nextel-image-01.mail').join)
|
25
|
+
mms = MMS2R::Media.create(mail)
|
26
|
+
mms.process
|
27
|
+
|
28
|
+
file = mms.get_media
|
29
|
+
assert_file_size file, 337
|
30
|
+
assert_equal 'Jan15_0001.jpg', file.original_filename
|
31
|
+
assert_equal 337, file.size
|
32
|
+
assert_match(/Jan15_0001.jpg$/, file.local_path)
|
33
|
+
|
34
|
+
mms.purge
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_simple_image1
|
38
|
+
mail = TMail::Mail.parse(load_mail('nextel-image-01.mail').join)
|
39
|
+
mms = MMS2R::Media.create(mail)
|
40
|
+
mms.process
|
41
|
+
|
42
|
+
assert_equal 1, mms.media.size
|
43
|
+
assert_nil mms.media['text/plain']
|
44
|
+
assert_nil mms.media['text/html']
|
45
|
+
assert_not_nil mms.media['image/jpeg'][0]
|
46
|
+
assert_match(/Jan15_0001.jpg$/, mms.media['image/jpeg'][0])
|
47
|
+
|
48
|
+
assert_file_size mms.media['image/jpeg'][0], 337
|
49
|
+
|
50
|
+
mms.purge
|
51
|
+
end
|
52
|
+
|
53
|
+
def test_simple_image2
|
54
|
+
mail = TMail::Mail.parse(load_mail('nextel-image-02.mail').join)
|
55
|
+
mms = MMS2R::Media.create(mail)
|
56
|
+
mms.process
|
57
|
+
|
58
|
+
assert_equal 1, mms.media.size
|
59
|
+
assert_nil mms.media['text/plain']
|
60
|
+
assert_nil mms.media['text/html']
|
61
|
+
assert_not_nil mms.media['image/jpeg'][0]
|
62
|
+
assert_match(/Mar12_0001.jpg$/, mms.media['image/jpeg'][0])
|
63
|
+
|
64
|
+
assert_file_size mms.media['image/jpeg'][0], 337
|
65
|
+
|
66
|
+
mms.purge
|
67
|
+
end
|
68
|
+
|
69
|
+
def test_simple_image3
|
70
|
+
mail = TMail::Mail.parse(load_mail('nextel-image-03.mail').join)
|
71
|
+
mms = MMS2R::Media.create(mail)
|
72
|
+
mms.process
|
73
|
+
|
74
|
+
assert_equal 1, mms.media.size
|
75
|
+
assert_nil mms.media['text/plain']
|
76
|
+
assert_nil mms.media['text/html']
|
77
|
+
assert_not_nil mms.media['image/jpeg'][0]
|
78
|
+
assert_match(/Apr01_0001.jpg$/, mms.media['image/jpeg'][0])
|
79
|
+
|
80
|
+
assert_file_size mms.media['image/jpeg'][0], 337
|
81
|
+
|
82
|
+
mms.purge
|
83
|
+
end
|
84
|
+
|
85
|
+
def test_simple_image4
|
86
|
+
mail = TMail::Mail.parse(load_mail('nextel-image-04.mail').join)
|
87
|
+
mms = MMS2R::Media.create(mail)
|
88
|
+
mms.process
|
89
|
+
|
90
|
+
assert_equal 1, mms.media.size
|
91
|
+
assert_nil mms.media['text/plain']
|
92
|
+
assert_nil mms.media['text/html']
|
93
|
+
assert_not_nil mms.media['image/jpeg'][0]
|
94
|
+
assert_match(/Mar20_0001.jpg$/, mms.media['image/jpeg'][0])
|
95
|
+
|
96
|
+
assert_file_size mms.media['image/jpeg'][0], 337
|
97
|
+
|
98
|
+
mms.purge
|
99
|
+
end
|
100
|
+
end
|
@@ -0,0 +1,221 @@
|
|
1
|
+
$:.unshift File.join(File.dirname(__FILE__), "..", "lib")
|
2
|
+
require File.dirname(__FILE__) + "/test_helper"
|
3
|
+
require 'test/unit'
|
4
|
+
require 'webrick'
|
5
|
+
require 'net/http'
|
6
|
+
require 'rubygems'
|
7
|
+
require 'mms2r'
|
8
|
+
require 'mms2r/media'
|
9
|
+
require 'tmail/mail'
|
10
|
+
require 'logger'
|
11
|
+
|
12
|
+
# this style of test was inspired by WWW::Mechanize
|
13
|
+
|
14
|
+
class SimpleImageServlet < WEBrick::HTTPServlet::AbstractServlet
|
15
|
+
def do_GET(req, res)
|
16
|
+
res['Content-Type'] = "image/jpeg"
|
17
|
+
f = "files/dot.jpg"
|
18
|
+
res.body = File.open("#{File.dirname(__FILE__)}/#{f}", 'rb') { |file|
|
19
|
+
file.read
|
20
|
+
}
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
class BrokenImageServlet < WEBrick::HTTPServlet::AbstractServlet
|
25
|
+
def do_GET(req, res)
|
26
|
+
raise
|
27
|
+
#res['Content-Type'] = "text/html"
|
28
|
+
#res.code = 404
|
29
|
+
#res.body = '<html><head><title>404 Not Found</title></head><body><h1>Not Found</h1></body></html>'
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
class SimpleVideoServlet < WEBrick::HTTPServlet::AbstractServlet
|
34
|
+
def do_GET(req, res)
|
35
|
+
res['Content-Type'] = "video/quicktime"
|
36
|
+
f = "files/sprint.mov"
|
37
|
+
res.body = File.open("#{File.dirname(__FILE__)}/#{f}", 'rb') { |file|
|
38
|
+
file.read
|
39
|
+
}
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
class Net::HTTP
|
44
|
+
|
45
|
+
alias :old_do_start :do_start
|
46
|
+
|
47
|
+
def do_start
|
48
|
+
@started = true
|
49
|
+
end
|
50
|
+
|
51
|
+
SERVLETS = {
|
52
|
+
'/mmps' => SimpleImageServlet,
|
53
|
+
'/simpleimage' => SimpleImageServlet,
|
54
|
+
'/brokenimage' => BrokenImageServlet,
|
55
|
+
'/simplevideo' => SimpleVideoServlet
|
56
|
+
}
|
57
|
+
|
58
|
+
alias :old_request :request
|
59
|
+
|
60
|
+
def request(request, *data, &block)
|
61
|
+
url = URI.parse(request.path)
|
62
|
+
path = url.path.gsub('%20', ' ').match(/^\/[^\/]+/)[0]
|
63
|
+
res = Response.new
|
64
|
+
request.query = WEBrick::HTTPUtils.parse_query(url.query)
|
65
|
+
servlet = case
|
66
|
+
when request.query['HACK'].eql?('VIDEO')
|
67
|
+
SimpleVideoServlet
|
68
|
+
when request.query['HACK'].eql?('IMAGE')
|
69
|
+
SimpleImageServlet
|
70
|
+
when request.query['HACK'].eql?('BROKEN')
|
71
|
+
BrokenImageServlet
|
72
|
+
else
|
73
|
+
SERVLETS[path]
|
74
|
+
end
|
75
|
+
servlet.new({}).send("do_#{request.method}", request, res)
|
76
|
+
res.code ||= "200"
|
77
|
+
res
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
class Net::HTTPRequest
|
82
|
+
attr_accessor :query, :body, :cookies
|
83
|
+
end
|
84
|
+
|
85
|
+
class Response
|
86
|
+
include Net::HTTPHeader
|
87
|
+
|
88
|
+
attr_reader :code
|
89
|
+
attr_accessor :body, :query, :cookies
|
90
|
+
|
91
|
+
def code=(c)
|
92
|
+
@code = c.to_s
|
93
|
+
end
|
94
|
+
|
95
|
+
alias :status :code
|
96
|
+
alias :status= :code=
|
97
|
+
|
98
|
+
def initialize
|
99
|
+
@header = {}
|
100
|
+
@body = ''
|
101
|
+
@code = nil
|
102
|
+
@query = nil
|
103
|
+
@cookies = []
|
104
|
+
end
|
105
|
+
|
106
|
+
def read_body
|
107
|
+
yield body
|
108
|
+
end
|
109
|
+
|
110
|
+
def value()
|
111
|
+
return body if "200".eql?(@code)
|
112
|
+
raise Net::HTTPError.new('400 Bad Request', 'Good Bye')
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
class MMS2R::SprintMediaTest < Test::Unit::TestCase
|
117
|
+
include MMS2R::TestHelper
|
118
|
+
|
119
|
+
def setup
|
120
|
+
@log = Logger.new(STDOUT)
|
121
|
+
@log.level = Logger::DEBUG
|
122
|
+
@log.datetime_format = "%H:%M:%S"
|
123
|
+
end
|
124
|
+
|
125
|
+
def teardown; end
|
126
|
+
|
127
|
+
def test_mms_should_have_text
|
128
|
+
mail = TMail::Mail.parse(load_mail('sprint-text-01.mail').join)
|
129
|
+
mms = MMS2R::Media.create(mail)
|
130
|
+
mms.process
|
131
|
+
assert_equal 1, mms.media.size
|
132
|
+
assert_equal 1, mms.media['text/plain'].size
|
133
|
+
assert_equal 7, mms.get_text.size
|
134
|
+
text = IO.readlines("#{mms.get_text.path}").join
|
135
|
+
assert_match(/Tea Pot/, text)
|
136
|
+
mms.purge
|
137
|
+
end
|
138
|
+
|
139
|
+
def test_mms_should_have_a_phone_number
|
140
|
+
mail = TMail::Mail.parse(load_mail('sprint-image-01.mail').join)
|
141
|
+
mms = MMS2R::Media.create(mail)
|
142
|
+
mms.process
|
143
|
+
assert_equal '2068509247', mms.get_number
|
144
|
+
mms.purge
|
145
|
+
end
|
146
|
+
|
147
|
+
def test_should_have_simple_video
|
148
|
+
mail = TMail::Mail.parse(load_mail('sprint-video-01.mail').join)
|
149
|
+
mms = MMS2R::Media.create(mail)
|
150
|
+
mms.process
|
151
|
+
|
152
|
+
assert_equal 1, mms.media.size
|
153
|
+
assert_nil mms.media['text/plain']
|
154
|
+
assert_nil mms.media['text/html']
|
155
|
+
assert_not_nil mms.media['video/quicktime'][0]
|
156
|
+
assert_match(/000_0123a01234567895_1-0.mov$/, mms.media['video/quicktime'][0])
|
157
|
+
|
158
|
+
assert_file_size mms.media['video/quicktime'][0], 49063
|
159
|
+
|
160
|
+
assert_equal "", mms.get_subject, "Default Sprint subject not scrubbed."
|
161
|
+
|
162
|
+
mms.purge
|
163
|
+
end
|
164
|
+
|
165
|
+
def test_should_have_simple_image
|
166
|
+
mail = TMail::Mail.parse(load_mail('sprint-image-01.mail').join)
|
167
|
+
mms = MMS2R::Media.create(mail)
|
168
|
+
mms.process
|
169
|
+
|
170
|
+
assert_equal 1, mms.media.size
|
171
|
+
assert_nil mms.media['text/plain']
|
172
|
+
assert_nil mms.media['text/html']
|
173
|
+
assert_not_nil mms.media['image/jpeg'][0]
|
174
|
+
assert_match(/000_0123a01234567890_1-0.jpg$/, mms.media['image/jpeg'][0])
|
175
|
+
|
176
|
+
assert_file_size mms.media['image/jpeg'][0], 337
|
177
|
+
|
178
|
+
assert_equal "", mms.get_subject, "Default Sprint subject not scrubbed"
|
179
|
+
|
180
|
+
mms.purge
|
181
|
+
end
|
182
|
+
|
183
|
+
def test_should_have_two_images
|
184
|
+
mail = TMail::Mail.parse(load_mail('sprint-two-images-01.mail').join)
|
185
|
+
mms = MMS2R::Media.create(mail)
|
186
|
+
mms.process
|
187
|
+
|
188
|
+
assert_equal 1, mms.media.size
|
189
|
+
assert_nil mms.media['text/plain']
|
190
|
+
assert_nil mms.media['text/html']
|
191
|
+
assert_equal 2, mms.media['image/jpeg'].size
|
192
|
+
assert_not_nil mms.media['image/jpeg'][0]
|
193
|
+
assert_not_nil mms.media['image/jpeg'][1]
|
194
|
+
assert_match(/000_0123a01234567890_1-0.jpg$/, mms.media['image/jpeg'][0])
|
195
|
+
assert_match(/000_0123a01234567890_1-1.jpg$/, mms.media['image/jpeg'][1])
|
196
|
+
|
197
|
+
assert_file_size mms.media['image/jpeg'][0], 337
|
198
|
+
assert_file_size mms.media['image/jpeg'][1], 337
|
199
|
+
|
200
|
+
assert_equal "", mms.get_subject, "Default Sprint subject not scrubbed"
|
201
|
+
|
202
|
+
mms.purge
|
203
|
+
end
|
204
|
+
|
205
|
+
def test_image_should_be_missing
|
206
|
+
mail = TMail::Mail.parse(load_mail('sprint-broken-image-01.mail').join)
|
207
|
+
mms = MMS2R::Media.create(mail)
|
208
|
+
mms.process
|
209
|
+
|
210
|
+
assert_equal 0, mms.media.size
|
211
|
+
|
212
|
+
mms.purge
|
213
|
+
end
|
214
|
+
|
215
|
+
def test_get_body_should_return_empty_string_when_there_is_no_user_text
|
216
|
+
mail = TMail::Mail.parse(load_mail('sprint-image-01.mail').join)
|
217
|
+
mms = MMS2R::Media.create(mail)
|
218
|
+
mms.process
|
219
|
+
assert_equal("", mms.get_body)
|
220
|
+
end
|
221
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
$:.unshift File.join(File.dirname(__FILE__), "..", "lib")
|
2
|
+
require File.dirname(__FILE__) + "/test_helper"
|
3
|
+
require 'test/unit'
|
4
|
+
require 'rubygems'
|
5
|
+
require 'mms2r'
|
6
|
+
require 'mms2r/media'
|
7
|
+
require 'tmail/mail'
|
8
|
+
require 'logger'
|
9
|
+
|
10
|
+
class MMS2R::SprintPcsMediaTest < Test::Unit::TestCase
|
11
|
+
include MMS2R::TestHelper
|
12
|
+
|
13
|
+
def test_simple_text
|
14
|
+
mail = TMail::Mail.parse(load_mail('sprint-pcs-text-01.mail').join)
|
15
|
+
mms = MMS2R::Media.create(mail)
|
16
|
+
assert_equal MMS2R::SprintPcsMedia, mms.class, "expected a #{MMS2R::SprintPcsMedia} and received a #{mms.class}"
|
17
|
+
mms.process
|
18
|
+
assert_not_nil mms.media['text/plain']
|
19
|
+
file = mms.media['text/plain'][0]
|
20
|
+
assert_not_nil file
|
21
|
+
assert File::exist?(file), "file #{file} does not exist"
|
22
|
+
text = IO.readlines("#{file}").join
|
23
|
+
assert_match(/hello world/, text)
|
24
|
+
mms.purge
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
@@ -7,7 +7,7 @@ require 'mms2r/media'
|
|
7
7
|
require 'tmail/mail'
|
8
8
|
require 'logger'
|
9
9
|
|
10
|
-
class
|
10
|
+
class MMS2R::TMobileMediaTest < Test::Unit::TestCase
|
11
11
|
include MMS2R::TestHelper
|
12
12
|
|
13
13
|
def setup
|
@@ -23,13 +23,13 @@ class MMS2RTMobileTest < Test::Unit::TestCase
|
|
23
23
|
mms = MMS2R::Media.create(mail)
|
24
24
|
mms.process
|
25
25
|
|
26
|
-
|
27
|
-
assert_nil
|
28
|
-
assert_nil
|
29
|
-
assert_not_nil
|
26
|
+
assert_equal 1, mms.media.size
|
27
|
+
assert_nil mms.media['text/plain']
|
28
|
+
assert_nil mms.media['text/html']
|
29
|
+
assert_not_nil mms.media['image/jpeg'][0]
|
30
30
|
assert_match(/12-01-06_1234.jpg$/, mms.media['image/jpeg'][0])
|
31
31
|
|
32
|
-
assert_file_size
|
32
|
+
assert_file_size mms.media['image/jpeg'][0], 337
|
33
33
|
|
34
34
|
mms.purge
|
35
35
|
end
|
@@ -39,17 +39,17 @@ class MMS2RTMobileTest < Test::Unit::TestCase
|
|
39
39
|
mms = MMS2R::Media.create(mail)
|
40
40
|
mms.process
|
41
41
|
|
42
|
-
|
43
|
-
assert_not_nil
|
44
|
-
assert_nil
|
45
|
-
assert_not_nil
|
42
|
+
assert_equal 2, mms.media.size
|
43
|
+
assert_not_nil mms.media['text/plain']
|
44
|
+
assert_nil mms.media['text/html']
|
45
|
+
assert_not_nil mms.media['image/jpeg'][0]
|
46
46
|
assert_match(/07-25-05_0935.jpg$/, mms.media['image/jpeg'][0])
|
47
47
|
|
48
|
-
assert_file_size
|
48
|
+
assert_file_size mms.media['image/jpeg'][0], 337
|
49
49
|
|
50
50
|
file = mms.media['text/plain'][0]
|
51
|
-
assert_not_nil
|
52
|
-
assert
|
51
|
+
assert_not_nil file
|
52
|
+
assert File::exist?(file), "file #{file} does not exist"
|
53
53
|
text = IO.readlines("#{file}").join
|
54
54
|
assert_equal "Lillies", text.strip
|
55
55
|
|
@@ -0,0 +1,96 @@
|
|
1
|
+
$:.unshift File.join(File.dirname(__FILE__), "..", "lib")
|
2
|
+
require File.dirname(__FILE__) + "/test_helper"
|
3
|
+
require 'test/unit'
|
4
|
+
require 'rubygems'
|
5
|
+
require 'mms2r'
|
6
|
+
require 'mms2r/media'
|
7
|
+
require 'tmail/mail'
|
8
|
+
require 'logger'
|
9
|
+
|
10
|
+
class MMS2R::VerizonMediaTest < Test::Unit::TestCase
|
11
|
+
include MMS2R::TestHelper
|
12
|
+
|
13
|
+
def setup
|
14
|
+
@log = Logger.new(STDOUT)
|
15
|
+
@log.level = Logger::DEBUG
|
16
|
+
@log.datetime_format = "%H:%M:%S"
|
17
|
+
@ad = "This message was sent using PIX-FLIX Messaging service from Verizon Wireless!\nTo learn how you can snap pictures with your wireless phone visit\nwww.verizonwireless.com/getitnow/getpix."
|
18
|
+
@greet = "This message was sent using PIX-FLIX Messaging service from Verizon Wireless!"
|
19
|
+
end
|
20
|
+
|
21
|
+
def teardown; end
|
22
|
+
|
23
|
+
def test_simple_video
|
24
|
+
mail = TMail::Mail.parse(load_mail('verizon-video-01.mail').join)
|
25
|
+
mms = MMS2R::Media.create(mail)
|
26
|
+
mms.process
|
27
|
+
|
28
|
+
assert_equal 1, mms.media.size
|
29
|
+
assert_nil mms.media['text/plain']
|
30
|
+
assert_nil mms.media['text/html']
|
31
|
+
assert_not_nil mms.media['video/3gpp2'][0]
|
32
|
+
assert_match(/012345_67890.3g2$/, mms.media['video/3gpp2'][0])
|
33
|
+
|
34
|
+
assert_file_size mms.media['video/3gpp2'][0], 16553
|
35
|
+
|
36
|
+
mms.purge
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_simple_image
|
40
|
+
mail = TMail::Mail.parse(load_mail('verizon-image-01.mail').join)
|
41
|
+
mms = MMS2R::Media.create(mail)
|
42
|
+
mms.process
|
43
|
+
assert_equal MMS2R::VerizonMedia, mms.class, "expected a #{MMS2R::VerizonMedia} and received a #{mms.class}"
|
44
|
+
|
45
|
+
assert_equal 1, mms.media.size
|
46
|
+
assert_nil mms.media['text/plain']
|
47
|
+
assert_nil mms.media['text/html']
|
48
|
+
assert_not_nil mms.media['image/jpeg'][0]
|
49
|
+
assert_match(/IMAGE_00004.jpg$/, mms.media['image/jpeg'][0])
|
50
|
+
|
51
|
+
assert_file_size mms.media['image/jpeg'][0], 337
|
52
|
+
|
53
|
+
mms.purge
|
54
|
+
end
|
55
|
+
|
56
|
+
def test_simple_text
|
57
|
+
mail = TMail::Mail.parse(load_mail('verizon-text-01.mail').join)
|
58
|
+
mms = MMS2R::Media.create(mail)
|
59
|
+
assert_equal MMS2R::VerizonMedia, mms.class, "expected a #{MMS2R::VerizonMedia} and received a #{mms.class}"
|
60
|
+
mms.process
|
61
|
+
assert_equal 1, mms.media.size
|
62
|
+
assert_not_nil mms.media['text/plain']
|
63
|
+
file = mms.media['text/plain'][0]
|
64
|
+
assert_not_nil file
|
65
|
+
assert File::exist?(file), "file #{file} does not exist"
|
66
|
+
text = IO.readlines("#{file}").join
|
67
|
+
assert_match(/hello world/, text)
|
68
|
+
mms.purge
|
69
|
+
end
|
70
|
+
|
71
|
+
def test_image_with_body_text
|
72
|
+
mail = TMail::Mail.parse(load_mail('verizon-image-02.mail').join)
|
73
|
+
mms = MMS2R::Media.create(mail)
|
74
|
+
mms.process
|
75
|
+
|
76
|
+
assert_equal 2, mms.media.size
|
77
|
+
assert_not_nil mms.media['text/plain']
|
78
|
+
assert_nil mms.media['text/html']
|
79
|
+
assert_not_nil mms.media['image/jpeg'][0]
|
80
|
+
assert_match(/04-09-07_1114.jpg$/, mms.media['image/jpeg'][0])
|
81
|
+
|
82
|
+
assert_file_size mms.media['image/jpeg'][0], 337
|
83
|
+
|
84
|
+
file = mms.media['text/plain'][0]
|
85
|
+
assert_not_nil file
|
86
|
+
assert File::exist?(file), "file #{file} does not exist"
|
87
|
+
text = IO.readlines("#{file}").join
|
88
|
+
assert !text.match(@ad), "found ad in text"
|
89
|
+
assert !text.match(@greet), "found ad in text"
|
90
|
+
assert_equal "? Weird", text
|
91
|
+
|
92
|
+
mms.purge
|
93
|
+
end
|
94
|
+
|
95
|
+
|
96
|
+
end
|