brendanlim-mms2r 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (170) hide show
  1. data/.gitignore +3 -0
  2. data/History.txt +292 -0
  3. data/Manifest.txt +169 -0
  4. data/README.txt +202 -0
  5. data/Rakefile +36 -0
  6. data/conf/1nbox.net.yml +13 -0
  7. data/conf/aliases.yml +17 -0
  8. data/conf/bellsouth.net.yml +2 -0
  9. data/conf/from.yml +2 -0
  10. data/conf/mediamessaging.o2.co.uk.yml +4 -0
  11. data/conf/messaging.nextel.com.yml +10 -0
  12. data/conf/mms.3ireland.ie.yml +17 -0
  13. data/conf/mms.ae.yml +5 -0
  14. data/conf/mms.alltel.com.yml +15 -0
  15. data/conf/mms.att.net.yml +11 -0
  16. data/conf/mms.dobson.net.yml +4 -0
  17. data/conf/mms.luxgsm.lu.yml +13 -0
  18. data/conf/mms.mobileiam.ma.yml +16 -0
  19. data/conf/mms.mtn.co.za.yml +13 -0
  20. data/conf/mms.mycricket.com.yml +4 -0
  21. data/conf/mms.myhelio.com.yml +12 -0
  22. data/conf/mms.netcom.no.yml +4 -0
  23. data/conf/mms.o2online.de.yml +8 -0
  24. data/conf/mms.three.co.uk.yml +15 -0
  25. data/conf/mms.vodacom4me.co.za.yml +13 -0
  26. data/conf/mms2r_media.yml +24 -0
  27. data/conf/mobile.indosat.net.id.yml +14 -0
  28. data/conf/msg.telus.com.yml +6 -0
  29. data/conf/orangemms.net.yml +13 -0
  30. data/conf/pm.sprint.com.yml +12 -0
  31. data/conf/pxt.vodafone.net.nz.yml +5 -0
  32. data/conf/rci.rogers.com.yml +18 -0
  33. data/conf/sms.sasktel.com.yml +12 -0
  34. data/conf/tmomail.net.yml +28 -0
  35. data/conf/txt.bell.ca.yml +4 -0
  36. data/conf/unicel.com.yml +6 -0
  37. data/conf/vmpix.com.yml +11 -0
  38. data/conf/vzwpix.com.yml +8 -0
  39. data/conf/waw.plspictures.com.yml +15 -0
  40. data/dev_tools/anonymizer.rb +20 -0
  41. data/dev_tools/debug_sprint_hpricot_parsing.rb +82 -0
  42. data/dev_tools/github.rb +8 -0
  43. data/lib/mms2r.rb +58 -0
  44. data/lib/mms2r/media.rb +746 -0
  45. data/lib/mms2r/media/sprint.rb +189 -0
  46. data/lib/tmail_ext.rb +17 -0
  47. data/mms2r.gemspec +41 -0
  48. data/test/fixtures/1nbox-2images-01.mail +738 -0
  49. data/test/fixtures/1nbox-2images-02.mail +736 -0
  50. data/test/fixtures/1nbox-2images-03.mail +736 -0
  51. data/test/fixtures/1nbox-2images-04.mail +732 -0
  52. data/test/fixtures/3ireland-mms-01.mail +671 -0
  53. data/test/fixtures/alltel-image-01.mail +319 -0
  54. data/test/fixtures/alltel-mms-01.mail +270 -0
  55. data/test/fixtures/alltel-mms-03.mail +270 -0
  56. data/test/fixtures/apple-double-image-01.mail +53 -0
  57. data/test/fixtures/att-blackberry-02.mail +54 -0
  58. data/test/fixtures/att-blackberry.mail +60 -0
  59. data/test/fixtures/att-image-01.mail +37 -0
  60. data/test/fixtures/att-image-02.mail +37 -0
  61. data/test/fixtures/att-iphone-01.mail +73 -0
  62. data/test/fixtures/att-iphone-02.mail +61 -0
  63. data/test/fixtures/att-iphone-03.mail +61 -0
  64. data/test/fixtures/att-text-01.mail +27 -0
  65. data/test/fixtures/bell-canada-image-01.mail +2273 -0
  66. data/test/fixtures/cingularme-text-01.mail +13 -0
  67. data/test/fixtures/cingularme-text-02.mail +14 -0
  68. data/test/fixtures/dobson-image-01.mail +64 -0
  69. data/test/fixtures/dot.jpg +0 -0
  70. data/test/fixtures/generic.mail +50 -0
  71. data/test/fixtures/helio-image-01.mail +348 -0
  72. data/test/fixtures/helio-message-01.mail +327 -0
  73. data/test/fixtures/iconv-fr-text-01.mail +50 -0
  74. data/test/fixtures/indosat-image-01.mail +751 -0
  75. data/test/fixtures/indosat-image-02.mail +751 -0
  76. data/test/fixtures/info2go-image-01.mail +43 -0
  77. data/test/fixtures/luxgsm-image-01.mail +388 -0
  78. data/test/fixtures/maroctelecom-france-mms-01.mail +511 -0
  79. data/test/fixtures/mediamessaging_o2_co_uk-image-01.mail +61 -0
  80. data/test/fixtures/mmode-image-01.mail +36 -0
  81. data/test/fixtures/mms.ae-image-01.mail +45 -0
  82. data/test/fixtures/mms.mycricket.com-pic-and-text.mail +87 -0
  83. data/test/fixtures/mms.mycricket.com-pic.mail +78 -0
  84. data/test/fixtures/mmsreply.t-mobile.co.uk-text-image-01.mail +431 -0
  85. data/test/fixtures/mobile.mycingular.com-text-01.mail +25 -0
  86. data/test/fixtures/mtn-southafrica-mms.mail +127 -0
  87. data/test/fixtures/mycingular-image-01.mail +66 -0
  88. data/test/fixtures/netcom-image-01.mail +63 -0
  89. data/test/fixtures/nextel-image-01.mail +46 -0
  90. data/test/fixtures/nextel-image-02.mail +43 -0
  91. data/test/fixtures/nextel-image-03.mail +44 -0
  92. data/test/fixtures/nextel-image-04.mail +43 -0
  93. data/test/fixtures/o2-de-image-01.mail +134 -0
  94. data/test/fixtures/orange-uk-image-01.mail +71 -0
  95. data/test/fixtures/orangefrance-text-and-image.mail +68 -0
  96. data/test/fixtures/orangepoland-text-01.mail +7 -0
  97. data/test/fixtures/orangepoland-text-02.mail +7 -0
  98. data/test/fixtures/pics.cingularme.com-image-01.mail +44 -0
  99. data/test/fixtures/pxt-image-01.mail +118 -0
  100. data/test/fixtures/rogers-canada-mms-01.mail +1029 -0
  101. data/test/fixtures/sasktel-image-01.mail +1791 -0
  102. data/test/fixtures/sprint-broken-image-01.mail +195 -0
  103. data/test/fixtures/sprint-image-01.mail +211 -0
  104. data/test/fixtures/sprint-pcs-text-01.mail +8 -0
  105. data/test/fixtures/sprint-purged-image-01.mail +195 -0
  106. data/test/fixtures/sprint-text-01.mail +195 -0
  107. data/test/fixtures/sprint-two-images-01.mail +231 -0
  108. data/test/fixtures/sprint-video-01.mail +210 -0
  109. data/test/fixtures/sprint.mov +0 -0
  110. data/test/fixtures/suncom-blackberry.mail +43 -0
  111. data/test/fixtures/telus-image-01.mail +89 -0
  112. data/test/fixtures/three-uk-image-01.mail +684 -0
  113. data/test/fixtures/tmo.blackberry.net-image-01.mail +48 -0
  114. data/test/fixtures/tmobile-blackberry-02.mail +50 -0
  115. data/test/fixtures/tmobile-blackberry.mail +44 -0
  116. data/test/fixtures/tmobile-image-01.mail +145 -0
  117. data/test/fixtures/tmobile-image-02.mail +145 -0
  118. data/test/fixtures/unicel-image-01.mail +60 -0
  119. data/test/fixtures/verizon-blackberry.mail +53 -0
  120. data/test/fixtures/verizon-image-01.mail +44 -0
  121. data/test/fixtures/verizon-image-02.mail +50 -0
  122. data/test/fixtures/verizon-image-03.mail +53 -0
  123. data/test/fixtures/verizon-text-01.mail +10 -0
  124. data/test/fixtures/verizon-video-01.mail +336 -0
  125. data/test/fixtures/virgin-mobile-image-01.mail +73 -0
  126. data/test/fixtures/virgin.ca-text-01.mail +21 -0
  127. data/test/fixtures/vodacom4me-co-za-01.mail +104 -0
  128. data/test/fixtures/vodacom4me-co-za-02.mail +108 -0
  129. data/test/fixtures/vodacom4me-southafrica-mms-01.mail +152 -0
  130. data/test/fixtures/vodacom4me-southafrica-mms-04.mail +655 -0
  131. data/test/fixtures/vtext-text-01.mail +10 -0
  132. data/test/fixtures/waw.plspictures.com-image-01.mail +1611 -0
  133. data/test/test_1nbox_net.rb +78 -0
  134. data/test/test_bell_canada.rb +44 -0
  135. data/test/test_bellsouth_net.rb +22 -0
  136. data/test/test_github.rb +12 -0
  137. data/test/test_helper.rb +58 -0
  138. data/test/test_mediamessaging_o2_co_uk.rb +52 -0
  139. data/test/test_messaging_nextel_com.rb +93 -0
  140. data/test/test_messaging_sprintpcs_com.rb +26 -0
  141. data/test/test_mms2r_media.rb +760 -0
  142. data/test/test_mms_3ireland_ie.rb +25 -0
  143. data/test/test_mms_ae.rb +46 -0
  144. data/test/test_mms_alltel_com.rb +53 -0
  145. data/test/test_mms_att_net.rb +142 -0
  146. data/test/test_mms_dobson_net.rb +41 -0
  147. data/test/test_mms_luxgsm_lu.rb +58 -0
  148. data/test/test_mms_mobileiam_ma.rb +26 -0
  149. data/test/test_mms_mtn_co_za.rb +25 -0
  150. data/test/test_mms_mycricket_com.rb +60 -0
  151. data/test/test_mms_myhelio_com.rb +62 -0
  152. data/test/test_mms_netcom_no.rb +52 -0
  153. data/test/test_mms_o2online_de.rb +53 -0
  154. data/test/test_mms_three_co_uk.rb +42 -0
  155. data/test/test_mms_vodacom4me_co_za.rb +107 -0
  156. data/test/test_mobile_indosat_net_id.rb +52 -0
  157. data/test/test_msg_telus_com.rb +28 -0
  158. data/test/test_orangemms_net.rb +100 -0
  159. data/test/test_pm_sprint_com.rb +202 -0
  160. data/test/test_pxt_vodafone_net_nz.rb +37 -0
  161. data/test/test_rci_rogers_com.rb +28 -0
  162. data/test/test_sms_sasktel_com.rb +28 -0
  163. data/test/test_tmomail_net.rb +108 -0
  164. data/test/test_unicel_com.rb +49 -0
  165. data/test/test_vmpix_com.rb +56 -0
  166. data/test/test_vzwpix_com.rb +131 -0
  167. data/test/test_waw_plspictures_com.rb +27 -0
  168. data/vendor/plugins/mms2r/lib/autotest/discover.rb +3 -0
  169. data/vendor/plugins/mms2r/lib/autotest/mms2r.rb +38 -0
  170. metadata +288 -0
@@ -0,0 +1,202 @@
1
+ require File.join(File.dirname(__FILE__), "..", "lib", "mms2r")
2
+ require File.join(File.dirname(__FILE__), "test_helper")
3
+ require 'test/unit'
4
+ require 'rubygems'
5
+ require 'mocha'
6
+ gem 'tmail', '>= 1.2.1'
7
+ require 'tmail'
8
+
9
+ class TestPmSprintCom < Test::Unit::TestCase
10
+ include MMS2R::TestHelper
11
+
12
+ def mock_sprint_image(message_id)
13
+ uri = URI.parse('http://pictures.sprintpcs.com//mmps/RECIPIENT/001_2066c7013e7ca833_1/2?wm=1&ext=.jpg&iconifyVideo=true&inviteToken=PE5rJ5PdYzzwk7V7zoXU&outquality=90')
14
+ res = mock()
15
+ body = mock()
16
+ res.expects(:content_type).at_least_once.returns('image/jpeg')
17
+ res.expects(:body).once.returns(body)
18
+ res.expects(:code).never
19
+ Net::HTTP.expects(:get_response).once.with(uri).returns res
20
+ end
21
+
22
+ def mock_sprint_purged_image(message_id)
23
+ uri = URI.parse('http://pictures.sprintpcs.com//mmps/RECIPIENT/001_2066c7013e7ca833_1/2?wm=1&ext=.jpg&iconifyVideo=true&inviteToken=PE5rJ5PdYzzwk7V7zoXU&outquality=90')
24
+ res = mock()
25
+ body = mock()
26
+ res.expects(:content_type).once.returns('text/html')
27
+ res.expects(:code).once.returns('500')
28
+ res.expects(:body).never
29
+ Net::HTTP.expects(:get_response).once.with(uri).returns res
30
+ end
31
+
32
+ def test_mms_should_have_text
33
+ mail = TMail::Mail.parse(load_mail('sprint-text-01.mail').join)
34
+ mms = MMS2R::Media.new(mail)
35
+
36
+ assert_equal 1, mms.media.size
37
+ assert_equal 1, mms.media['text/plain'].size
38
+ file = mms.media['text/plain'].first
39
+ assert_equal true, File.exist?(file)
40
+ assert_match(/\.txt$/, File.basename(file))
41
+ assert_equal "Tea Pot", IO.read(file)
42
+ mms.purge
43
+ end
44
+
45
+ def test_mms_should_have_a_phone_number
46
+ mail = TMail::Mail.parse(load_mail('sprint-image-01.mail').join)
47
+ mms = MMS2R::Media.new(mail)
48
+
49
+ assert_equal '2068675309', mms.number
50
+ mms.purge
51
+ end
52
+
53
+ def test_should_have_simple_video
54
+ mail = TMail::Mail.parse(load_mail('sprint-video-01.mail').join)
55
+
56
+ uri = URI.parse(
57
+ 'http://pictures.sprintpcs.com//mmps/RECIPIENT/000_259e41e851be9b1d_1/2?inviteToken=lEvrJnPVY5UfOYmahQcx&amp;iconifyVideo=true&amp;wm=1&amp;limitsize=125,125&amp;outquality=90&amp;squareoutput=255,255,255&amp;ext=.jpg&amp;iconifyVideo=true&amp;wm=1')
58
+ res = mock()
59
+ body = mock()
60
+ res.expects(:content_type).at_least_once.returns('video/quicktime')
61
+ res.expects(:body).once.returns(body)
62
+ res.expects(:code).never
63
+ Net::HTTP.expects(:get_response).once.with(uri).returns res
64
+
65
+ mms = MMS2R::Media.new(mail)
66
+
67
+ assert_equal 1, mms.media.size
68
+ assert_nil mms.media['text/plain']
69
+ assert_nil mms.media['text/html']
70
+ assert_not_nil mms.media['video/quicktime']
71
+ assert_equal 1, mms.media['video/quicktime'].size
72
+ assert_equal "000_259e41e851be9b1d_1-0.mov", File.basename(mms.media['video/quicktime'][0])
73
+
74
+ mms.purge
75
+ end
76
+
77
+ def test_should_have_simple_image
78
+ mail = TMail::Mail.parse(load_mail('sprint-image-01.mail').join)
79
+ mock_sprint_image(mail.message_id)
80
+ mms = MMS2R::Media.new(mail)
81
+
82
+ assert_equal 1, mms.media.size
83
+ assert_nil mms.media['text/plain']
84
+ assert_nil mms.media['text/html']
85
+ assert_not_nil mms.media['image/jpeg'][0]
86
+ assert_match(/001_2066c7013e7ca833_1-0.jpg$/, mms.media['image/jpeg'][0])
87
+
88
+ mms.purge
89
+ end
90
+
91
+ def test_collect_image_using_block
92
+ mail = TMail::Mail.parse(load_mail('sprint-image-01.mail').join)
93
+ mock_sprint_image(mail.message_id)
94
+ mms = MMS2R::Media.new(mail)
95
+ assert_equal 1, mms.media.size
96
+ file_array = nil
97
+ mms.process do |k, v|
98
+ file_array = v if (k == 'image/jpeg')
99
+ assert_equal 1, file_array.size
100
+ file = file_array.first
101
+ assert_not_nil file = file_array.first
102
+ assert_equal "001_2066c7013e7ca833_1-0.jpg", File.basename(file)
103
+ end
104
+ mms.purge
105
+ end
106
+
107
+ def test_process_internals_should_only_be_executed_once
108
+ mail = TMail::Mail.parse(load_mail('sprint-image-01.mail').join)
109
+ mock_sprint_image(mail.message_id)
110
+ mms = MMS2R::Media.new(mail)
111
+ assert_equal 1, mms.media.size
112
+
113
+ # second time through shouldn't go into the was_processed block
114
+ mms.mail.expects(:parts).never
115
+
116
+ mms.process{|k, v| }
117
+
118
+ mms.purge
119
+ end
120
+
121
+ def test_should_have_two_images
122
+ mail = TMail::Mail.parse(load_mail('sprint-two-images-01.mail').join)
123
+
124
+ uri1 = URI.parse('http://pictures.sprintpcs.com/mmps/RECIPIENT/001_104058d23d79fb6a_1/2?wm=1&ext=.jpg&iconifyVideo=true&inviteToken=5E1rJSPk5hYDkUnY7op0&outquality=90')
125
+ res1 = mock()
126
+ body1 = mock()
127
+ res1.expects(:content_type).at_least_once.returns('image/jpeg')
128
+ res1.expects(:body).once.returns(body1)
129
+ res1.expects(:code).never
130
+ Net::HTTP.expects(:get_response).once.with(uri1).returns res1
131
+
132
+ uri2 = URI.parse('http://pictures.sprintpcs.com/mmps/RECIPIENT/001_104058d23d79fb6a_1/3?wm=1&ext=.jpg&iconifyVideo=true&inviteToken=5E1rJSPk5hYDkUnY7op0&outquality=90')
133
+
134
+ res2 = mock()
135
+ body2 = mock()
136
+ res2.expects(:content_type).at_least_once.returns('image/jpeg')
137
+ res2.expects(:body).once.returns(body2)
138
+ res2.expects(:code).never
139
+ Net::HTTP.expects(:get_response).once.with(uri2).returns res2
140
+ mms = MMS2R::Media.new(mail)
141
+
142
+ assert_equal 1, mms.media.size
143
+ assert_nil mms.media['text/plain']
144
+ assert_nil mms.media['text/html']
145
+ assert_equal 2, mms.media['image/jpeg'].size
146
+ assert_not_nil mms.media['image/jpeg'][0]
147
+ assert_not_nil mms.media['image/jpeg'][1]
148
+ assert_match(/001_104058d23d79fb6a_1-0.jpg$/, mms.media['image/jpeg'][0])
149
+ assert_match(/001_104058d23d79fb6a_1-1.jpg$/, mms.media['image/jpeg'][1])
150
+
151
+ mms.purge
152
+ end
153
+
154
+ def test_image_should_be_missing
155
+ # this test is questionable
156
+ mail = TMail::Mail.parse(load_mail('sprint-broken-image-01.mail').join)
157
+ mms = MMS2R::Media.new(mail)
158
+
159
+ assert_equal 0, mms.media.size
160
+
161
+ mms.purge
162
+ end
163
+
164
+ def test_image_should_be_purged_from_content_server
165
+ mail = TMail::Mail.parse(load_mail('sprint-image-01.mail').join)
166
+ mock_sprint_purged_image(mail.message_id)
167
+ mms = MMS2R::Media.new(mail)
168
+
169
+ assert_equal 0, mms.media.size
170
+
171
+ mms.purge
172
+ end
173
+
174
+ def test_body_should_return_empty_when_there_is_no_user_text
175
+ mail = TMail::Mail.parse(load_mail('sprint-image-01.mail').join)
176
+ mms = MMS2R::Media.new(mail)
177
+ assert_equal "", mms.body
178
+ end
179
+
180
+ def test_sprint_write_file
181
+ require 'tempfile'
182
+ mail = mock(:message_id => 'a')
183
+ mail.expects(:header).at_least_once.returns({})
184
+ mail.expects(:from).at_least_once.returns(['joe@pm.sprint.com'])
185
+ s = MMS2R::Media::Sprint.new(mail, :process => :lazy)
186
+ type = 'text/plain'
187
+ content = 'foo'
188
+ file = Tempfile.new('sprint')
189
+ file.close
190
+
191
+ type, file = s.send(:sprint_write_file, type, content, file.path)
192
+ assert_equal 'text/plain', type
193
+ assert_equal content, IO.read(file)
194
+ end
195
+
196
+ def test_subject
197
+ mail = TMail::Mail.parse(load_mail('sprint-image-01.mail').join)
198
+ mms = MMS2R::Media.new(mail)
199
+ assert_equal "", mms.subject
200
+ end
201
+
202
+ end
@@ -0,0 +1,37 @@
1
+ require File.join(File.dirname(__FILE__), "..", "lib", "mms2r")
2
+ require File.join(File.dirname(__FILE__), "test_helper")
3
+ require 'test/unit'
4
+ require 'rubygems'
5
+ require 'mocha'
6
+ gem 'tmail', '>= 1.2.1'
7
+ require 'tmail'
8
+
9
+ class TestPxtVodafoneNetNz < Test::Unit::TestCase
10
+ include MMS2R::TestHelper
11
+
12
+ def setup
13
+ mail = TMail::Mail.parse(load_mail('pxt-image-01.mail').join)
14
+ @mms = MMS2R::Media.new(mail)
15
+ end
16
+
17
+ def teardown
18
+ @mms.purge
19
+ end
20
+
21
+ def test_pxt_text_returns_text_plain
22
+ assert_not_nil(@mms.media['text/plain'])
23
+
24
+ file = @mms.media['text/plain'][0]
25
+ assert_not_nil(file)
26
+ assert(File::exist?(file), "file #{file} does not exist")
27
+ text = IO.readlines("#{file}").join
28
+ assert_match(/Kia ora ano Luke/, text)
29
+
30
+ assert_match(/Kia ora ano Luke/, @mms.body)
31
+ end
32
+
33
+ def test_subject_should_clear_default_pxt_message
34
+ assert_equal "", @mms.subject
35
+ end
36
+
37
+ end
@@ -0,0 +1,28 @@
1
+ require File.join(File.dirname(__FILE__), "..", "lib", "mms2r")
2
+ require File.join(File.dirname(__FILE__), "test_helper")
3
+ require 'test/unit'
4
+ require 'rubygems'
5
+ require 'mocha'
6
+ gem 'tmail', '>= 1.2.1'
7
+ require 'tmail'
8
+
9
+ class TestRciRogersCom < Test::Unit::TestCase
10
+ include MMS2R::TestHelper
11
+
12
+ def test_image_and_text_and_number
13
+ mail = TMail::Mail.parse(load_mail('rogers-canada-mms-01.mail').join)
14
+ mms = MMS2R::Media.new(mail)
15
+
16
+ assert_equal "1234567890", mms.number
17
+ assert_equal "", mms.subject
18
+
19
+ assert_equal 1, mms.media.size
20
+ assert_equal 2, mms.media['image/jpeg'].size
21
+
22
+ #janky test because there is a verisign logo in the file
23
+ assert_not_nil mms.media['image/jpeg'].first
24
+ assert mms.media['image/jpeg'].detect{|f| /A2.2658324049556002.jpg$/ =~ f}
25
+ mms.purge
26
+ end
27
+
28
+ end
@@ -0,0 +1,28 @@
1
+ require File.join(File.dirname(__FILE__), "..", "lib", "mms2r")
2
+ require File.join(File.dirname(__FILE__), "test_helper")
3
+ require 'test/unit'
4
+ require 'rubygems'
5
+ require 'mocha'
6
+ gem 'tmail', '>= 1.2.1'
7
+ require 'tmail'
8
+
9
+ class TestSmsSasktelCom < Test::Unit::TestCase
10
+ include MMS2R::TestHelper
11
+
12
+ def test_sms_sasktel_com
13
+ # sms.sasktel.com service
14
+ mail = TMail::Mail.parse(load_mail('sasktel-image-01.mail').join)
15
+ mms = MMS2R::Media.new(mail)
16
+ assert_equal "sms.sasktel.com", mms.carrier
17
+ assert_equal "", mms.subject
18
+ assert_nil mms.media['text/html']
19
+ assert_nil mms.media['image/gif']
20
+ assert_equal 1, mms.media.size
21
+ assert_not_nil mms.media['image/jpeg']
22
+ assert_equal 1, mms.media['image/jpeg'].size
23
+ assert_match(/A1.8463391017738573.jpg$/, mms.media['image/jpeg'].first)
24
+ assert_file_size(mms.media['image/jpeg'].first, 337)
25
+ mms.purge
26
+ end
27
+
28
+ end
@@ -0,0 +1,108 @@
1
+ require File.join(File.dirname(__FILE__), "..", "lib", "mms2r")
2
+ require File.join(File.dirname(__FILE__), "test_helper")
3
+ require 'test/unit'
4
+ require 'rubygems'
5
+ require 'mocha'
6
+ gem 'tmail', '>= 1.2.1'
7
+ require 'tmail'
8
+
9
+ class TestTmomailNet < Test::Unit::TestCase
10
+ include MMS2R::TestHelper
11
+
12
+ def test_ignore_simple_image
13
+ mail = TMail::Mail.parse(load_mail('tmobile-image-01.mail').join)
14
+ mms = MMS2R::Media.new(mail)
15
+
16
+ assert_equal 1, mms.media.size
17
+ assert_nil mms.media['text/plain']
18
+ assert_nil mms.media['text/html']
19
+ assert_not_nil mms.media['image/jpeg'][0]
20
+ assert_match(/12-01-06_1234.jpg$/, mms.media['image/jpeg'][0])
21
+
22
+ assert_file_size mms.media['image/jpeg'][0], 337
23
+
24
+ mms.purge
25
+ end
26
+
27
+ def test_message_with_body_text
28
+ mail = TMail::Mail.parse(load_mail('tmobile-image-02.mail').join)
29
+ mms = MMS2R::Media.new(mail)
30
+
31
+ assert_equal 2, mms.media.size
32
+ assert_not_nil mms.media['text/plain']
33
+ assert_nil mms.media['text/html']
34
+ assert_not_nil mms.media['image/jpeg'][0]
35
+ assert_match(/07-25-05_0935.jpg$/, mms.media['image/jpeg'][0])
36
+
37
+ assert_file_size mms.media['image/jpeg'][0], 337
38
+
39
+ file = mms.media['text/plain'][0]
40
+ assert_not_nil file
41
+ assert File::exist?(file), "file #{file} does not exist"
42
+ text = IO.readlines("#{file}").join
43
+ assert_equal "Lillies", text.strip
44
+
45
+ mms.purge
46
+ end
47
+
48
+ def test_image_from_blackberry
49
+ mail = TMail::Mail.parse(load_mail('tmobile-blackberry.mail').join)
50
+ mms = MMS2R::Media.new(mail)
51
+
52
+ assert_nil mms.media['text/plain']
53
+
54
+ assert_not_nil mms.media['image/jpeg'].first
55
+ assert_match(/Windows-1252\?B\?SU1HMDAyMzkuanBn/, mms.media['image/jpeg'].first)
56
+ mms.purge
57
+ end
58
+
59
+ def test_image_from_blackberry2
60
+ mail = TMail::Mail.parse(load_mail('tmobile-blackberry-02.mail').join)
61
+ mms = MMS2R::Media.new(mail)
62
+
63
+ assert_equal 1, mms.media.size
64
+ assert_nil mms.media['text/plain']
65
+
66
+ assert_not_nil mms.media['image/jpeg'].first
67
+ assert_match(/Windows-1252\?B\?SU1HMDAxNDEuanBn/, mms.media['image/jpeg'].first)
68
+ mms.purge
69
+ end
70
+
71
+ def test_tmobile_uk_image_and_text_and_number
72
+ mail = TMail::Mail.parse(load_mail('mmsreply.t-mobile.co.uk-text-image-01.mail').join)
73
+ mms = MMS2R::Media.new(mail)
74
+
75
+ assert_equal '12345678901', mms.number
76
+ assert_equal 'mmsreply.t-mobile.co.uk', mms.carrier
77
+
78
+ assert_equal 2, mms.media.size
79
+ assert_equal 1, mms.media['image/jpeg'].size
80
+ assert_equal 1, mms.media['text/plain'].size
81
+
82
+ assert_equal "Do you know this office? Do you know this office? Do \nyou know this office? Do you know this office?", mms.default_text.read
83
+
84
+ assert_file_size mms.media['image/jpeg'][0], 337
85
+ file = mms.default_media
86
+ assert_equal 'Image002.jpg', file.original_filename
87
+
88
+ mms.purge
89
+ end
90
+
91
+ def test_tmo_blackberry_net
92
+ mail = TMail::Mail.parse(load_mail('tmo.blackberry.net-image-01.mail').join)
93
+ mms = MMS2R::Media.new(mail)
94
+
95
+ assert_equal '2068675309', mms.number
96
+ assert_equal 'IMG00440.jpg', mms.subject
97
+ assert_equal 'tmo.blackberry.net', mms.carrier
98
+
99
+ assert_equal 1, mms.media.size
100
+ assert_equal 1, mms.media['image/jpeg'].size
101
+
102
+ assert_file_size mms.media['image/jpeg'][0], 337
103
+ file = mms.default_media
104
+ assert_equal '=?Windows-1252?B?SU1HMDA0NDAuanBn?=.jpg', file.original_filename
105
+
106
+ mms.purge
107
+ end
108
+ end
@@ -0,0 +1,49 @@
1
+ require File.join(File.dirname(__FILE__), "..", "lib", "mms2r")
2
+ require File.join(File.dirname(__FILE__), "test_helper")
3
+ require 'test/unit'
4
+ require 'rubygems'
5
+ require 'mocha'
6
+ gem 'tmail', '>= 1.2.1'
7
+ require 'tmail'
8
+
9
+ class TestUnicelCom < Test::Unit::TestCase
10
+ include MMS2R::TestHelper
11
+
12
+ def test_subject_number_image_unicel
13
+ mail = TMail::Mail.parse(load_mail('unicel-image-01.mail').join)
14
+ mms = MMS2R::Media.new(mail)
15
+
16
+ assert_equal "", mms.subject
17
+ # assert_equal "1234567890", mms.number
18
+
19
+ assert_equal 2, mms.media.size
20
+ assert_equal 1, mms.media['text/plain'].size
21
+ assert_equal 1, mms.media['image/jpeg'].size
22
+
23
+ image = mms.media['image/jpeg'].detect{|f| /moto_0002\.jpg/ =~ f}
24
+ assert_equal 337, File.size(image)
25
+
26
+ file = mms.media['text/plain'][0]
27
+ text = IO.readlines("#{file}").join
28
+ assert_match(/2068675309/, text)
29
+
30
+ mms.purge
31
+ end
32
+
33
+ def test_subject_number_image_info2go
34
+ mail = TMail::Mail.parse(load_mail('info2go-image-01.mail').join)
35
+ mms = MMS2R::Media.new(mail)
36
+
37
+ assert_equal "", mms.subject
38
+ assert_equal "2068675309", mms.number
39
+
40
+ assert_equal 1, mms.media.size
41
+ assert_equal 1, mms.media['image/jpeg'].size
42
+
43
+ image = mms.media['image/jpeg'].detect{|f| /Image047\.jpeg/ =~ f}
44
+ assert_equal 337, File.size(image)
45
+
46
+ mms.purge
47
+ end
48
+
49
+ end