sms_sender_cbf 1.5.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.
Files changed (46) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +6 -0
  4. data/Rakefile +32 -0
  5. data/lib/sms_sender_cbf/error_codes.rb +40 -0
  6. data/lib/sms_sender_cbf/message_parser.rb +36 -0
  7. data/lib/sms_sender_cbf/normalizer.rb +26 -0
  8. data/lib/sms_sender_cbf/version.rb +3 -0
  9. data/lib/sms_sender_cbf.rb +57 -0
  10. data/lib/tasks/sms_sender_cbf_tasks.rake +4 -0
  11. data/test/dummy/README.rdoc +28 -0
  12. data/test/dummy/Rakefile +6 -0
  13. data/test/dummy/app/assets/javascripts/application.js +13 -0
  14. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  15. data/test/dummy/app/controllers/application_controller.rb +5 -0
  16. data/test/dummy/app/helpers/application_helper.rb +2 -0
  17. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  18. data/test/dummy/bin/bundle +3 -0
  19. data/test/dummy/bin/rails +4 -0
  20. data/test/dummy/bin/rake +4 -0
  21. data/test/dummy/config/application.rb +26 -0
  22. data/test/dummy/config/boot.rb +5 -0
  23. data/test/dummy/config/database.yml +25 -0
  24. data/test/dummy/config/environment.rb +5 -0
  25. data/test/dummy/config/environments/development.rb +37 -0
  26. data/test/dummy/config/environments/production.rb +83 -0
  27. data/test/dummy/config/environments/test.rb +42 -0
  28. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  29. data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
  30. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  31. data/test/dummy/config/initializers/inflections.rb +16 -0
  32. data/test/dummy/config/initializers/mime_types.rb +4 -0
  33. data/test/dummy/config/initializers/session_store.rb +3 -0
  34. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  35. data/test/dummy/config/locales/en.yml +23 -0
  36. data/test/dummy/config/routes.rb +56 -0
  37. data/test/dummy/config/secrets.yml +22 -0
  38. data/test/dummy/config.ru +4 -0
  39. data/test/dummy/log/test.log +270 -0
  40. data/test/dummy/public/404.html +67 -0
  41. data/test/dummy/public/422.html +67 -0
  42. data/test/dummy/public/500.html +66 -0
  43. data/test/dummy/public/favicon.ico +0 -0
  44. data/test/sms_sender_cbf_test.rb +56 -0
  45. data/test/test_helper.rb +16 -0
  46. metadata +124 -0
@@ -0,0 +1,23 @@
1
+ # Files in the config/locales directory are used for internationalization
2
+ # and are automatically loaded by Rails. If you want to use locales other
3
+ # than English, add the necessary files in this directory.
4
+ #
5
+ # To use the locales, use `I18n.t`:
6
+ #
7
+ # I18n.t 'hello'
8
+ #
9
+ # In views, this is aliased to just `t`:
10
+ #
11
+ # <%= t('hello') %>
12
+ #
13
+ # To use a different locale, set it with `I18n.locale`:
14
+ #
15
+ # I18n.locale = :es
16
+ #
17
+ # This would use the information in config/locales/es.yml.
18
+ #
19
+ # To learn more, please read the Rails Internationalization guide
20
+ # available at http://guides.rubyonrails.org/i18n.html.
21
+
22
+ en:
23
+ hello: "Hello world"
@@ -0,0 +1,56 @@
1
+ Rails.application.routes.draw do
2
+ # The priority is based upon order of creation: first created -> highest priority.
3
+ # See how all your routes lay out with "rake routes".
4
+
5
+ # You can have the root of your site routed with "root"
6
+ # root 'welcome#index'
7
+
8
+ # Example of regular route:
9
+ # get 'products/:id' => 'catalog#view'
10
+
11
+ # Example of named route that can be invoked with purchase_url(id: product.id)
12
+ # get 'products/:id/purchase' => 'catalog#purchase', as: :purchase
13
+
14
+ # Example resource route (maps HTTP verbs to controller actions automatically):
15
+ # resources :products
16
+
17
+ # Example resource route with options:
18
+ # resources :products do
19
+ # member do
20
+ # get 'short'
21
+ # post 'toggle'
22
+ # end
23
+ #
24
+ # collection do
25
+ # get 'sold'
26
+ # end
27
+ # end
28
+
29
+ # Example resource route with sub-resources:
30
+ # resources :products do
31
+ # resources :comments, :sales
32
+ # resource :seller
33
+ # end
34
+
35
+ # Example resource route with more complex sub-resources:
36
+ # resources :products do
37
+ # resources :comments
38
+ # resources :sales do
39
+ # get 'recent', on: :collection
40
+ # end
41
+ # end
42
+
43
+ # Example resource route with concerns:
44
+ # concern :toggleable do
45
+ # post 'toggle'
46
+ # end
47
+ # resources :posts, concerns: :toggleable
48
+ # resources :photos, concerns: :toggleable
49
+
50
+ # Example resource route within a namespace:
51
+ # namespace :admin do
52
+ # # Directs /admin/products/* to Admin::ProductsController
53
+ # # (app/controllers/admin/products_controller.rb)
54
+ # resources :products
55
+ # end
56
+ end
@@ -0,0 +1,22 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Your secret key is used for verifying the integrity of signed cookies.
4
+ # If you change this key, all old signed cookies will become invalid!
5
+
6
+ # Make sure the secret is at least 30 characters and all random,
7
+ # no regular words or you'll be exposed to dictionary attacks.
8
+ # You can use `rake secret` to generate a secure secret key.
9
+
10
+ # Make sure the secrets in this file are kept private
11
+ # if you're sharing your code publicly.
12
+
13
+ development:
14
+ secret_key_base: b4ebacd6c8ae954bb929779eab46e87fa8ac6a1a9a35d4212b22516379261acbee98beba598c1b0863251ca5a271c046d77a1b29079ed4f0b27128ebc9674e34
15
+
16
+ test:
17
+ secret_key_base: d859246fec9258afbad76a6f62f7b66b285bb317bca6182b6f26457d58f61dd494392b434613b2038085e5e15568f0095f0346d5068c760e9f8de58eefdf3e2a
18
+
19
+ # Do not keep production secrets in the repository,
20
+ # instead read values from the environment.
21
+ production:
22
+ secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
@@ -0,0 +1,4 @@
1
+ # This file is used by Rack-based servers to start the application.
2
+
3
+ require ::File.expand_path('../config/environment', __FILE__)
4
+ run Rails.application
@@ -0,0 +1,270 @@
1
+ --------------------------------
2
+ SmsSenderCbfTest: test_send_test
3
+ --------------------------------
4
+ --------------------------------
5
+ SmsSenderCbfTest: test_send_test
6
+ --------------------------------
7
+ --------------------------------
8
+ SmsSenderCbfTest: test_send_test
9
+ --------------------------------
10
+ --------------------------------
11
+ SmsSenderCbfTest: test_send_test
12
+ --------------------------------
13
+ --------------------------------
14
+ SmsSenderCbfTest: test_send_test
15
+ --------------------------------
16
+ --------------------------------
17
+ SmsSenderCbfTest: test_send_test
18
+ --------------------------------
19
+ --------------------------------
20
+ SmsSenderCbfTest: test_send_test
21
+ --------------------------------
22
+ --------------------------------
23
+ SmsSenderCbfTest: test_send_test
24
+ --------------------------------
25
+ ---------------------------------------
26
+ SmsSenderCbfTest: test_query_deliveries
27
+ ---------------------------------------
28
+ --------------------------------
29
+ SmsSenderCbfTest: test_send_test
30
+ --------------------------------
31
+ ---------------------------------------
32
+ SmsSenderCbfTest: test_query_deliveries
33
+ ---------------------------------------
34
+ --------------------------------
35
+ SmsSenderCbfTest: test_send_test
36
+ --------------------------------
37
+ ---------------------------------------
38
+ SmsSenderCbfTest: test_query_deliveries
39
+ ---------------------------------------
40
+ --------------------------------
41
+ SmsSenderCbfTest: test_send_test
42
+ --------------------------------
43
+ ---------------------------------------
44
+ SmsSenderCbfTest: test_query_deliveries
45
+ ---------------------------------------
46
+ --------------------------------
47
+ SmsSenderCbfTest: test_send_test
48
+ --------------------------------
49
+ ---------------------------------------
50
+ SmsSenderCbfTest: test_query_deliveries
51
+ ---------------------------------------
52
+ --------------------------------
53
+ SmsSenderCbfTest: test_send_test
54
+ --------------------------------
55
+ ---------------------------------------
56
+ SmsSenderCbfTest: test_query_deliveries
57
+ ---------------------------------------
58
+ --------------------------------
59
+ SmsSenderCbfTest: test_send_test
60
+ --------------------------------
61
+ ---------------------------------------
62
+ SmsSenderCbfTest: test_query_deliveries
63
+ ---------------------------------------
64
+ --------------------------------
65
+ SmsSenderCbfTest: test_send_test
66
+ --------------------------------
67
+ ---------------------------------------
68
+ SmsSenderCbfTest: test_query_deliveries
69
+ ---------------------------------------
70
+ --------------------------------
71
+ SmsSenderCbfTest: test_send_test
72
+ --------------------------------
73
+ ---------------------------------------
74
+ SmsSenderCbfTest: test_query_deliveries
75
+ ---------------------------------------
76
+ --------------------------------
77
+ SmsSenderCbfTest: test_send_test
78
+ --------------------------------
79
+ ---------------------------------------
80
+ SmsSenderCbfTest: test_query_deliveries
81
+ ---------------------------------------
82
+ --------------------------------
83
+ SmsSenderCbfTest: test_send_test
84
+ --------------------------------
85
+ ---------------------------------------
86
+ SmsSenderCbfTest: test_query_deliveries
87
+ ---------------------------------------
88
+ --------------------------------
89
+ SmsSenderCbfTest: test_send_test
90
+ --------------------------------
91
+ ---------------------------------------
92
+ SmsSenderCbfTest: test_query_deliveries
93
+ ---------------------------------------
94
+ --------------------------------
95
+ SmsSenderCbfTest: test_send_test
96
+ --------------------------------
97
+ ---------------------------------------
98
+ SmsSenderCbfTest: test_query_deliveries
99
+ ---------------------------------------
100
+ --------------------------------
101
+ SmsSenderCbfTest: test_send_test
102
+ --------------------------------
103
+ ---------------------------------------
104
+ SmsSenderCbfTest: test_query_deliveries
105
+ ---------------------------------------
106
+ --------------------------------
107
+ SmsSenderCbfTest: test_send_test
108
+ --------------------------------
109
+ ---------------------------------------
110
+ SmsSenderCbfTest: test_query_deliveries
111
+ ---------------------------------------
112
+ --------------------------------
113
+ SmsSenderCbfTest: test_send_test
114
+ --------------------------------
115
+ ---------------------------------------
116
+ SmsSenderCbfTest: test_query_deliveries
117
+ ---------------------------------------
118
+ --------------------------------
119
+ SmsSenderCbfTest: test_send_test
120
+ --------------------------------
121
+ ---------------------------------------
122
+ SmsSenderCbfTest: test_query_deliveries
123
+ ---------------------------------------
124
+ --------------------------------
125
+ SmsSenderCbfTest: test_send_test
126
+ --------------------------------
127
+ ---------------------------------------
128
+ SmsSenderCbfTest: test_query_deliveries
129
+ ---------------------------------------
130
+ --------------------------------
131
+ SmsSenderCbfTest: test_send_test
132
+ --------------------------------
133
+ ---------------------------------------
134
+ SmsSenderCbfTest: test_query_deliveries
135
+ ---------------------------------------
136
+ --------------------------------
137
+ SmsSenderCbfTest: test_send_test
138
+ --------------------------------
139
+ ---------------------------------------
140
+ SmsSenderCbfTest: test_query_deliveries
141
+ ---------------------------------------
142
+ --------------------------------
143
+ SmsSenderCbfTest: test_send_test
144
+ --------------------------------
145
+ ---------------------------------------
146
+ SmsSenderCbfTest: test_query_deliveries
147
+ ---------------------------------------
148
+ --------------------------------
149
+ SmsSenderCbfTest: test_send_test
150
+ --------------------------------
151
+ ---------------------------------------
152
+ SmsSenderCbfTest: test_query_deliveries
153
+ ---------------------------------------
154
+ --------------------------------
155
+ SmsSenderCbfTest: test_send_test
156
+ --------------------------------
157
+ ---------------------------------------
158
+ SmsSenderCbfTest: test_query_deliveries
159
+ ---------------------------------------
160
+ --------------------------------
161
+ SmsSenderCbfTest: test_send_test
162
+ --------------------------------
163
+ ---------------------------------------
164
+ SmsSenderCbfTest: test_query_deliveries
165
+ ---------------------------------------
166
+ --------------------------------
167
+ SmsSenderCbfTest: test_send_test
168
+ --------------------------------
169
+ ---------------------------------------
170
+ SmsSenderCbfTest: test_query_deliveries
171
+ ---------------------------------------
172
+ --------------------------------
173
+ SmsSenderCbfTest: test_send_test
174
+ --------------------------------
175
+ ---------------------------------------
176
+ SmsSenderCbfTest: test_query_deliveries
177
+ ---------------------------------------
178
+ --------------------------------
179
+ SmsSenderCbfTest: test_send_test
180
+ --------------------------------
181
+ ---------------------------------------
182
+ SmsSenderCbfTest: test_query_deliveries
183
+ ---------------------------------------
184
+ --------------------------------
185
+ SmsSenderCbfTest: test_send_test
186
+ --------------------------------
187
+ ---------------------------------------
188
+ SmsSenderCbfTest: test_query_deliveries
189
+ ---------------------------------------
190
+ --------------------------------
191
+ SmsSenderCbfTest: test_send_test
192
+ --------------------------------
193
+ ---------------------------------------
194
+ SmsSenderCbfTest: test_query_deliveries
195
+ ---------------------------------------
196
+ --------------------------------
197
+ SmsSenderCbfTest: test_send_test
198
+ --------------------------------
199
+ ---------------------------------------
200
+ SmsSenderCbfTest: test_query_deliveries
201
+ ---------------------------------------
202
+ --------------------------------
203
+ SmsSenderCbfTest: test_send_test
204
+ --------------------------------
205
+ ---------------------------------------
206
+ SmsSenderCbfTest: test_query_deliveries
207
+ ---------------------------------------
208
+ --------------------------------
209
+ SmsSenderCbfTest: test_send_test
210
+ --------------------------------
211
+ ---------------------------------------
212
+ SmsSenderCbfTest: test_query_deliveries
213
+ ---------------------------------------
214
+ --------------------------------
215
+ SmsSenderCbfTest: test_send_test
216
+ --------------------------------
217
+ ---------------------------------------
218
+ SmsSenderCbfTest: test_query_deliveries
219
+ ---------------------------------------
220
+ --------------------------------
221
+ SmsSenderCbfTest: test_send_test
222
+ --------------------------------
223
+ ---------------------------------------
224
+ SmsSenderCbfTest: test_query_deliveries
225
+ ---------------------------------------
226
+ --------------------------------
227
+ SmsSenderCbfTest: test_send_test
228
+ --------------------------------
229
+ ---------------------------------------
230
+ SmsSenderCbfTest: test_query_deliveries
231
+ ---------------------------------------
232
+ --------------------------------
233
+ SmsSenderCbfTest: test_send_test
234
+ --------------------------------
235
+ ---------------------------------------
236
+ SmsSenderCbfTest: test_query_deliveries
237
+ ---------------------------------------
238
+ --------------------------------
239
+ SmsSenderCbfTest: test_send_test
240
+ --------------------------------
241
+ ---------------------------------------
242
+ SmsSenderCbfTest: test_query_deliveries
243
+ ---------------------------------------
244
+ --------------------------------
245
+ SmsSenderCbfTest: test_send_test
246
+ --------------------------------
247
+ ---------------------------------------
248
+ SmsSenderCbfTest: test_query_deliveries
249
+ ---------------------------------------
250
+ --------------------------------
251
+ SmsSenderCbfTest: test_send_test
252
+ --------------------------------
253
+ -----------------------------------------------------------------------------------
254
+ SmsSenderCbfTest: test_module_should_respod_to_supported_methods_with_proper_values
255
+ -----------------------------------------------------------------------------------
256
+ --------------------------------------------
257
+ SmsSenderCbfTest: test_query_deliveries_test
258
+ --------------------------------------------
259
+ --------------------------------
260
+ SmsSenderCbfTest: test_send_test
261
+ --------------------------------
262
+ -----------------------------------------------------------------------------------
263
+ SmsSenderCbfTest: test_module_should_respod_to_supported_methods_with_proper_values
264
+ -----------------------------------------------------------------------------------
265
+ --------------------------------------------
266
+ SmsSenderCbfTest: test_query_deliveries_test
267
+ --------------------------------------------
268
+ --------------------------------
269
+ SmsSenderCbfTest: test_send_test
270
+ --------------------------------
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The page you were looking for doesn't exist (404)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/404.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The page you were looking for doesn't exist.</h1>
62
+ <p>You may have mistyped the address or the page may have moved.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/422.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The change you wanted was rejected.</h1>
62
+ <p>Maybe you tried to change something you didn't have access to.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,66 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/500.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>We're sorry, but something went wrong.</h1>
62
+ </div>
63
+ <p>If you are the application owner check the logs for more information.</p>
64
+ </div>
65
+ </body>
66
+ </html>
File without changes
@@ -0,0 +1,56 @@
1
+ # encoding: utf-8
2
+ require 'test_helper'
3
+
4
+ class SmsSenderCbfTest < ActiveSupport::TestCase
5
+ test 'send test' do
6
+ test_messages = [
7
+ 'This message has been sent from automated test 😎',
8
+ 'این پیام از آزمون خودکار فرستاده شده است 😎',
9
+ 'Automated test, more ascii 😎 آزمون خودکار',
10
+ 'Automated test 😎 بیشتر غیر اسکی ،آزمون خودکار'
11
+ ]
12
+ if !ENV['REAL'].blank? && ENV['REAL']
13
+ WebMock.allow_net_connect!
14
+ else
15
+ # Config webmock for sending messages
16
+ test_messages.each do |m|
17
+ request_body_header = {:body => {'S' => 'H', 'UN' => ENV['username'], 'P' => ENV['password'], 'DA' => SmsSenderCbf::Normalizer.normalize_number(ENV['mobile_number']), 'M' => SmsSenderCbf::Normalizer.normalize_message(m), 'DR' => '2'}, :headers => {'Content-Type'=>'application/x-www-form-urlencoded'}}
18
+ request_body_header[:body]['SA'] = ENV['sender'] if !ENV['sender'].blank?
19
+ request_body_header[:body]['DC'] = '4' if !m.ascii_only?
20
+ WebMock::API.stub_request(:post, 'sms1.cardboardfish.com:9001/HTTPSMS').
21
+ with(request_body_header).
22
+ to_return(:status => 200,
23
+ :body => "OK 966536430333",
24
+ :headers => {'Content-Type' => 'text/plain;charset=ISO-8859-1'})
25
+ end
26
+ end
27
+ test_messages.each do |m|
28
+ send_sms_result = SmsSenderCbf.send_sms({'username' => ENV['username'], 'password' => ENV['password']}, ENV['mobile_number'], m, ENV['sender'])
29
+ assert_not_equal send_sms_result[:message_id], nil
30
+ assert_equal send_sms_result[:error], nil
31
+ end
32
+ end
33
+
34
+ test 'query deliveries test' do
35
+ if !ENV['REAL'].blank? && ENV['REAL']
36
+ WebMock.allow_net_connect!
37
+ else
38
+ # Config webmock for query deliveries
39
+ request_body_header = {:body => {'UN' => ENV['username'], 'P' => ENV['password']}, :headers => {'Content-Type'=>'application/x-www-form-urlencoded'}}
40
+ WebMock::API.stub_request(:post, 'sms1.cardboardfish.com:9001/ClientDR/ClientDR').
41
+ with(request_body_header).
42
+ to_return(:status => 200,
43
+ :body => "1\#123456:#{ENV['sender']}:#{SmsSenderCbf::Normalizer.normalize_number(ENV['mobile_number'])}:1::1465856570:MSG_1:",
44
+ :headers => {'Content-Type' => 'text/plain;charset=ISO-8859-1'})
45
+ end
46
+ query_deliveries_result = SmsSenderCbf.query_deliveries({'username' => ENV['username'], 'password' => ENV['password']})
47
+ assert_equal query_deliveries_result.first['message_id'], '123456'
48
+ assert_equal query_deliveries_result.first['status'], 'delivered'
49
+ end
50
+
51
+ test 'module should respod to supported_methods with proper values' do
52
+ assert SmsSenderCbf.respond_to?(:supported_methods)
53
+ assert SmsSenderCbf.supported_methods.include?('send_sms')
54
+ assert SmsSenderCbf.supported_methods.include?('query_deliveries')
55
+ end
56
+ end
@@ -0,0 +1,16 @@
1
+ # Configure Rails Environment
2
+ ENV["RAILS_ENV"] = "test"
3
+
4
+ require File.expand_path("../dummy/config/environment.rb", __FILE__)
5
+ require "rails/test_help"
6
+ require 'webmock/minitest'
7
+
8
+ Rails.backtrace_cleaner.remove_silencers!
9
+
10
+ # Load support files
11
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
12
+
13
+ # Load fixtures from the engine
14
+ if ActiveSupport::TestCase.method_defined?(:fixture_path=)
15
+ ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
16
+ end