sugoi-mail 0.1.0 → 0.1.5
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/INSTALL +94 -0
- data/app/apis/mailservice_api.rb +32 -22
- data/app/controllers/account_controller.rb +38 -22
- data/app/controllers/address_controller.rb +2 -0
- data/app/controllers/application.rb +12 -1
- data/app/controllers/base_user_controller.rb +29 -0
- data/app/controllers/domain_controller.rb +7 -8
- data/app/controllers/mail_admin_controller.rb +275 -0
- data/app/controllers/mailinglist_controller.rb +68 -14
- data/app/controllers/mailservice_controller.rb +116 -94
- data/app/controllers/navigation_controller.rb +3 -0
- data/app/controllers/root_admin_controller.rb +346 -0
- data/app/controllers/sugoi_admin_controller.rb +16 -13
- data/app/helpers/base_user_helper.rb +2 -0
- data/app/helpers/mail_admin_helper.rb +7 -0
- data/app/helpers/navigation_helper.rb +2 -0
- data/app/helpers/root_admin_helper.rb +2 -0
- data/app/models/address.rb +3 -4
- data/app/models/domain.rb +1 -1
- data/app/models/mail_admin.rb +2 -0
- data/app/models/mailinglist.rb +41 -19
- data/app/models/mailinglist_class.rb +1 -0
- data/app/models/message.rb +18 -36
- data/app/models/proxy_link.rb +14 -6
- data/app/views/account/login.rhtml +14 -12
- data/app/views/account/logout.rhtml +4 -8
- data/app/views/account/welcome.rhtml +3 -13
- data/app/views/base_user/add_address.rhtml +3 -0
- data/app/views/base_user/edit_address.rhtml +3 -0
- data/app/views/base_user/edit_user_list.rhtml +21 -0
- data/app/views/base_user/list_mailinglists.rhtml +3 -0
- data/app/views/base_user/remove_address.rhtml +3 -0
- data/app/views/base_user/unsubscribe_self.rhtml +3 -0
- data/app/views/layouts/application.rhtml +47 -0
- data/app/views/layouts/login.rhtml +34 -0
- data/app/views/layouts/sugoi_admin.rhtml +1 -0
- data/app/views/mail_admin/_form.rhtml +11 -0
- data/app/views/mail_admin/edit_admin_message.rhtml +12 -0
- data/app/views/mail_admin/list_admin_messages.rhtml +20 -0
- data/app/views/mail_admin/new_admin_message.rhtml +0 -0
- data/app/views/mailinglist/_address_form.rhtml +23 -0
- data/app/views/mailinglist/_form.rhtml +10 -14
- data/app/views/mailinglist/_new_class_form.rhtml +16 -0
- data/app/views/mailinglist/_new_form.rhtml +30 -0
- data/app/views/mailinglist/edit.rhtml +11 -5
- data/app/views/mailinglist/list.rhtml +15 -15
- data/app/views/mailinglist/list_mailinglist_classes.rhtml +18 -0
- data/app/views/mailinglist/new.rhtml +5 -5
- data/app/views/mailinglist/new_address.rhtml +10 -0
- data/app/views/mailinglist/new_mailinglist_class.rhtml +8 -0
- data/app/views/mailinglist/show.rhtml +15 -13
- data/app/views/navigation/_base_add_address_module.rhtml +2 -0
- data/app/views/navigation/_base_edit_address_module.rhtml +2 -0
- data/app/views/navigation/_base_edit_user_list_module.rhtml +5 -0
- data/app/views/navigation/_base_index_module.rhtml +2 -0
- data/app/views/navigation/_base_list_mailinglists_module.rhtml +3 -0
- data/app/views/navigation/_base_remove_address_module.rhtml +2 -0
- data/app/views/navigation/_base_unsubscribe_self_module.rhtml +2 -0
- data/app/views/navigation/_base_welcome_module.rhtml +3 -0
- data/app/views/navigation/_nav_module.rhtml +77 -0
- data/app/views/navigation/_root_add_address_module.rhtml +3 -0
- data/app/views/navigation/_root_add_mailinglist_module.rhtml +3 -0
- data/app/views/navigation/_root_add_user_module.rhtml +3 -0
- data/app/views/navigation/_root_change_user_password_module.rhtml +3 -0
- data/app/views/navigation/_root_edit_address_module.rhtml +13 -0
- data/app/views/navigation/_root_edit_mailinglist_module.rhtml +12 -0
- data/app/views/navigation/_root_edit_user_list_module.rhtml +3 -0
- data/app/views/navigation/_root_edit_user_module.rhtml +10 -0
- data/app/views/navigation/_root_index_module.rhtml +4 -0
- data/app/views/navigation/_root_list_addresses_module.rhtml +11 -0
- data/app/views/navigation/_root_list_mailinglists_module.rhtml +11 -0
- data/app/views/navigation/_root_list_users_module.rhtml +12 -0
- data/app/views/navigation/_root_remove_address_module.rhtml +12 -0
- data/app/views/navigation/_root_remove_mailinglist_module.rhtml +12 -0
- data/app/views/navigation/_root_remove_user_module.rhtml +12 -0
- data/app/views/navigation/_root_show_user_module.rhtml +10 -0
- data/app/views/navigation/_root_welcome_module.rhtml +3 -0
- data/app/views/navigation/chooseNav.rhtml +0 -0
- data/app/views/navigation/logout.rhtml +8 -0
- data/app/views/root_admin/_form.rhtml +21 -0
- data/app/views/root_admin/add_address.rhtml +3 -0
- data/app/views/root_admin/add_mailinglist.rhtml +3 -0
- data/app/views/root_admin/admin_user_list.rhtml +29 -0
- data/app/views/root_admin/admin_user_new.rhtml +8 -0
- data/app/views/root_admin/change_user_password.rhtml +3 -0
- data/app/views/root_admin/edit_address.rhtml +3 -0
- data/app/views/root_admin/edit_mailinglist.rhtml +3 -0
- data/app/views/root_admin/edit_user_list.rhtml +3 -0
- data/app/views/root_admin/list_addresses.rhtml +3 -0
- data/app/views/root_admin/list_mailinglists.rhtml +3 -0
- data/app/views/root_admin/list_users.rhtml +32 -0
- data/app/views/root_admin/remove_address.rhtml +3 -0
- data/app/views/root_admin/remove_mailinglist.rhtml +3 -0
- data/app/views/root_admin/remove_user.rhtml +3 -0
- data/app/views/root_admin/show_user.rhtml +3 -0
- data/app/views/sugoi_admin/_command_description.rhtml +1 -1
- data/app/views/sugoi_admin/_command_list.rhtml +1 -1
- data/app/views/sugoi_admin/create_domain.rhtml +1 -1
- data/app/views/sugoi_admin/create_list.rhtml +1 -1
- data/app/views/sugoi_admin/create_user.rhtml +1 -1
- data/app/views/sugoi_admin/help.rhtml +1 -1
- data/app/views/sugoi_admin/init.rhtml +1 -1
- data/app/views/sugoi_admin/list_addresses.rhtml +1 -1
- data/app/views/sugoi_admin/list_domains.rhtml +1 -1
- data/app/views/sugoi_admin/list_mailinglist_classes.rhtml +1 -1
- data/app/views/sugoi_admin/list_mailinglists.rhtml +1 -1
- data/app/views/sugoi_admin/list_users.rhtml +1 -1
- data/app/views/sugoi_admin/set_config.rhtml +4 -1
- data/app/views/sugoi_admin/show_config.rhtml +1 -1
- data/app/views/sugoi_admin/subscribe.rhtml +1 -1
- data/app/views/sugoi_admin/unsubscribe.rhtml +1 -1
- data/bin/maild +1 -1
- data/bin/sugoi-mail +1 -1
- data/config/environment.rb +2 -2
- data/config/routes.rb +4 -2
- data/db/migrate/028_add_sessions.rb +15 -0
- data/db/schema.rb +56 -48
- data/lib/login_system.rb +6 -6
- data/lib/tasks/release.rake +2 -2
- data/public/404.html +27 -5
- data/public/500.html +27 -5
- data/public/images/celltop1.jpg +0 -0
- data/public/images/title11.jpg +0 -0
- data/public/{index.html → index_default.html} +0 -0
- data/public/javascripts/dragdrop.js +1 -1
- data/public/javascripts/effects.js +1 -1
- data/public/javascripts/prototype.js +1 -1
- data/public/stylesheets/global.css +201 -0
- data/public/stylesheets/scaffold.css +176 -11
- data/public/stylesheets/trestle.css +176 -11
- data/script/cover +6 -0
- data/script/process/inspector +3 -0
- data/test/all.rb +2 -0
- data/test/fixtures/helps.yml +1 -1
- data/test/fixtures/mailinglist_classes.yml +4 -4
- data/test/fixtures/messages.yml +22 -2
- data/test/functional/base_user_controller_test.rb +18 -0
- data/test/functional/mail_admin_controller_test.rb +18 -0
- data/test/functional/mailservice_controller_test.rb +164 -19
- data/test/functional/navigation_controller_test.rb +18 -0
- data/test/functional/root_admin_controller_test.rb +18 -0
- data/test/functional/sugoi_admin_controller_test.rb +68 -10
- data/test/functionals.rb +2 -1
- data/test/integration/test_soap.rb +3 -1
- data/test/unit/address_test.rb +16 -1
- data/test/unit/domain_test.rb +5 -12
- data/test/unit/mailinglist_class_test.rb +2 -2
- data/test/unit/mailinglist_test.rb +138 -3
- data/test/unit/message_test.rb +256 -1
- data/test/unit/proxy_link_test.rb +37 -0
- data/test/unit/sys_config_test.rb +6 -0
- data/test/unit/user_test.rb +20 -0
- data/test/units.rb +2 -1
- metadata +94 -8
- data/app/views/layouts/address.rhtml +0 -13
- data/app/views/layouts/scaffold.rhtml +0 -13
@@ -1,6 +1,7 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/../test_helper'
|
2
2
|
require 'mailservice_controller'
|
3
3
|
require 'net-smtp-stub'
|
4
|
+
require 'pp'
|
4
5
|
|
5
6
|
# Re-raise errors caught by the controller.
|
6
7
|
class MailserviceController; def rescue_action(e) raise e end; end
|
@@ -95,7 +96,8 @@ class TC_Mailservice_DomainLogin < MailserviceControllerTest
|
|
95
96
|
|
96
97
|
def test_baddomain
|
97
98
|
# bad username, bad password
|
98
|
-
assert_equal(false, invoke(:domain_login,"junkdomain", "blort")
|
99
|
+
assert_equal(false, invoke(:domain_login,"junkdomain", "blort"),
|
100
|
+
"logging in shouldn't have worked here")
|
99
101
|
|
100
102
|
# good username, bad password
|
101
103
|
assert_equal(false, invoke(:domain_login,@domain_name, "blort"))
|
@@ -140,7 +142,7 @@ class TC_Mailservice_TroublesomeAdminTask < MailserviceDomainAdmin
|
|
140
142
|
assert invoke(:is_admin)
|
141
143
|
end
|
142
144
|
assert_nothing_raised do
|
143
|
-
assert invoke(:admin_user_signup,"newuser", "password", "password")
|
145
|
+
assert invoke(:admin_user_signup,"newuser", "New User", "password", "password", false, false)
|
144
146
|
end
|
145
147
|
|
146
148
|
# user exists, login succeeds
|
@@ -156,19 +158,27 @@ class TC_Mailservice_TroublesomeAdminTask < MailserviceDomainAdmin
|
|
156
158
|
end
|
157
159
|
end
|
158
160
|
|
161
|
+
class TC_Mailservice_DeleteSelf < MailserviceDomainAdmin
|
162
|
+
def test_deleteself
|
163
|
+
assert_raises RuntimeError do
|
164
|
+
invoke(:admin_user_delete, "root", "root")
|
165
|
+
end
|
166
|
+
end
|
167
|
+
end
|
168
|
+
|
159
169
|
class TC_Mailservice_AdminTasks_UserCreation < MailserviceDomainAdmin
|
160
170
|
def test_passwordmismatch
|
161
171
|
assert invoke(:is_admin)
|
162
172
|
# password doesn't match
|
163
173
|
assert_raises RuntimeError do
|
164
|
-
invoke(:admin_user_signup,"newuser", "password", "drowssap")
|
174
|
+
invoke(:admin_user_signup,"newuser", "New User", "password", "drowssap", false, false)
|
165
175
|
end
|
166
176
|
end
|
167
177
|
|
168
178
|
def test_usercreate
|
169
179
|
# user doesn't exist; gets created
|
170
180
|
assert invoke(:is_admin)
|
171
|
-
assert invoke(:admin_user_signup,"newuser", "password", "password")
|
181
|
+
assert invoke(:admin_user_signup,"newuser", "New User", "password", "password", false, false)
|
172
182
|
assert_raises RuntimeError do
|
173
183
|
assert invoke(:admin_user_delete,"newuser", "resuwen"),
|
174
184
|
"login and confirmation don't match on delete"
|
@@ -183,10 +193,10 @@ class TC_Mailservice_AdminTasks_UserCreation < MailserviceDomainAdmin
|
|
183
193
|
assert_nothing_raised do
|
184
194
|
assert invoke(:is_admin)
|
185
195
|
end
|
186
|
-
assert invoke(:admin_user_signup,"newuser", "password", "password")
|
196
|
+
assert invoke(:admin_user_signup,"newuser", "New User", "password", "password", false, false)
|
187
197
|
# user already exists; creation fails
|
188
198
|
assert_raises RuntimeError do
|
189
|
-
invoke(:admin_user_signup,"newuser", "password", "password")
|
199
|
+
invoke(:admin_user_signup,"newuser", "New User", "password", "password", false, false)
|
190
200
|
end
|
191
201
|
assert invoke(:admin_user_delete,"newuser", "newuser")
|
192
202
|
end
|
@@ -204,6 +214,14 @@ class TC_Mailservice_AdminTasks_UserCreation < MailserviceDomainAdmin
|
|
204
214
|
[ "nodesc", nil ],
|
205
215
|
[ "proxuser", "Proxy Mailing List" ]
|
206
216
|
].sort, list.sort
|
217
|
+
|
218
|
+
list = nil
|
219
|
+
assert_nothing_raised do
|
220
|
+
list = invoke :admin_user_collection
|
221
|
+
end
|
222
|
+
assert list
|
223
|
+
assert_equal [ @admin_name, "testuser", "virtuser", "nodesc",
|
224
|
+
"proxuser" ].sort, list.map { |u| u.login }.sort
|
207
225
|
end
|
208
226
|
|
209
227
|
end
|
@@ -214,30 +232,47 @@ class TC_Mailservice_AdminTasks_UserDeletion < MailserviceDomainAdmin
|
|
214
232
|
assert invoke(:is_admin)
|
215
233
|
end
|
216
234
|
|
235
|
+
# Check the user isn't there
|
236
|
+
assert_equal 0, User.find_all_by_login("newuser").length
|
237
|
+
|
217
238
|
# create the user
|
239
|
+
result = nil
|
218
240
|
assert_nothing_raised do
|
219
|
-
|
241
|
+
result = invoke(:admin_user_signup,"newuser", "New User", "password", "password", false, false)
|
220
242
|
end
|
243
|
+
assert_equal true, result, "user to be deleted successfully created"
|
244
|
+
|
245
|
+
assert_equal 1, User.find_all_by_login("newuser").length
|
221
246
|
|
222
247
|
# user exists; deletion succeeds
|
248
|
+
result = nil
|
223
249
|
assert_nothing_raised do
|
224
|
-
|
250
|
+
result=invoke(:admin_user_delete,"newuser", "newuser")
|
225
251
|
end
|
252
|
+
assert_equal true, result, "user delete should succeed"
|
253
|
+
|
254
|
+
assert_equal [], User.find_all_by_login("newuser")
|
226
255
|
|
227
256
|
# user doesn't exist; login fails
|
257
|
+
result=nil
|
228
258
|
assert_nothing_raised do
|
229
|
-
|
259
|
+
result=invoke(:user_login,"newuser", "password")
|
230
260
|
end
|
261
|
+
assert_equal false, result, "deleted user shouldn't be able to log in"
|
231
262
|
|
232
263
|
# okay, our session's just been trashed again. Get it back.
|
264
|
+
result=nil
|
233
265
|
assert_nothing_raised do
|
234
|
-
|
266
|
+
result=invoke(:user_login,@admin_name, "foobar")
|
235
267
|
end
|
268
|
+
assert_equal result, true
|
236
269
|
|
237
270
|
# user doesn't exist; deletion fails
|
271
|
+
result=nil
|
238
272
|
assert_nothing_raised do
|
239
|
-
|
273
|
+
result = invoke(:admin_user_delete,"newuser", "newuser")
|
240
274
|
end
|
275
|
+
assert_equal false, result
|
241
276
|
end
|
242
277
|
end
|
243
278
|
|
@@ -269,6 +304,38 @@ class TC_Mailservice_AdminTasks_UserPasswords < MailserviceDomainAdmin
|
|
269
304
|
end
|
270
305
|
end
|
271
306
|
|
307
|
+
class TC_Mailservice_AdminTasks_AllMailinglists < MailserviceDomainAdmin
|
308
|
+
def test_all_mailinglists
|
309
|
+
assert invoke(:is_admin)
|
310
|
+
|
311
|
+
result = nil
|
312
|
+
assert_nothing_raised do
|
313
|
+
result = invoke(:admin_mailinglists_all)
|
314
|
+
end
|
315
|
+
|
316
|
+
assert_equal ["nodesc", "nodescml", "proxuser", "root",
|
317
|
+
"testml", "testuser", "virtml", "virtuser"],
|
318
|
+
result.map { |ml| ml.name }.sort
|
319
|
+
end
|
320
|
+
end
|
321
|
+
|
322
|
+
# class TC_Mailservice_AdminTasks_Users < MailserviceDomainAdmin
|
323
|
+
# def test_user_collection
|
324
|
+
# assert invoke :is_admin
|
325
|
+
# collection = nil
|
326
|
+
# assert_nothing_raised do
|
327
|
+
# collection = invoke :admin_user_collection
|
328
|
+
# end
|
329
|
+
# assert_equal(@loaded_fixtures["users"].find_all do |user|
|
330
|
+
# pp user
|
331
|
+
# user["domain_id"] == "1"
|
332
|
+
# end.map do |user|
|
333
|
+
# user.id.to_i
|
334
|
+
# end.sort, collection.map { |u| u.id }.sort)
|
335
|
+
# end
|
336
|
+
# end
|
337
|
+
|
338
|
+
|
272
339
|
class TC_Mailservice_UserTasks_ChangePassword < MailserviceUserLogin
|
273
340
|
def test_normal
|
274
341
|
assert_nothing_raised do
|
@@ -309,13 +376,28 @@ class TC_Mailservice_UserTasks_RealName < MailserviceUserLogin
|
|
309
376
|
end
|
310
377
|
|
311
378
|
def test_change
|
379
|
+
oldpassword = User.find_by_login("testuser").password
|
380
|
+
|
381
|
+
old_pw = User.find(@loaded_fixtures["users"]["testuser"]["id"]).password
|
382
|
+
result = nil
|
312
383
|
assert_nothing_raised do
|
313
|
-
|
314
|
-
"foobar",
|
315
|
-
@new_name)
|
384
|
+
result = invoke(:user_change_real_name, "foobar", @new_name)
|
316
385
|
end
|
317
386
|
|
387
|
+
assert_equal @new_name, result
|
388
|
+
|
389
|
+
newpassword = User.find_by_login("testuser").password
|
390
|
+
|
391
|
+
|
392
|
+
new_pw = User.find(@loaded_fixtures["users"]["testuser"]["id"]).password
|
318
393
|
assert_equal @new_name, invoke(:user_real_name)
|
394
|
+
|
395
|
+
assert_equal old_pw, new_pw
|
396
|
+
end
|
397
|
+
|
398
|
+
def test_change_twice
|
399
|
+
test_change
|
400
|
+
test_change
|
319
401
|
end
|
320
402
|
|
321
403
|
def test_bad_password
|
@@ -323,6 +405,12 @@ class TC_Mailservice_UserTasks_RealName < MailserviceUserLogin
|
|
323
405
|
invoke(:user_change_real_name, "nofoobar", @new_name)
|
324
406
|
end
|
325
407
|
end
|
408
|
+
|
409
|
+
def test_excessively_long_new_name
|
410
|
+
assert_raises RuntimeError do
|
411
|
+
invoke(:user_change_real_name, "foobar", "x"*16384)
|
412
|
+
end
|
413
|
+
end
|
326
414
|
end
|
327
415
|
|
328
416
|
class TC_MailService_EmailAddresses < MailserviceUserLogin
|
@@ -354,11 +442,13 @@ class TC_MailService_EmailAddresses < MailserviceUserLogin
|
|
354
442
|
assert_equal [ "address1@foo.test" ],
|
355
443
|
invoke(:user_email_addresses_confirmed).sort
|
356
444
|
end
|
445
|
+
result = nil
|
357
446
|
assert_nothing_raised do
|
358
|
-
|
359
|
-
invoke(:user_email_addresses_unconfirmed).sort
|
447
|
+
result = invoke(:user_email_addresses_unconfirmed).sort
|
360
448
|
end
|
361
449
|
|
450
|
+
assert_equal [ "address2@foo.test", "brandnewuser@foo.test" ], result
|
451
|
+
|
362
452
|
confirmation_code=get_confirmation_code("testuser",
|
363
453
|
"brandnewuser@foo.test")
|
364
454
|
|
@@ -400,6 +490,28 @@ class TC_MailService_EmailAddresses < MailserviceUserLogin
|
|
400
490
|
end
|
401
491
|
end
|
402
492
|
|
493
|
+
class TC_AdminConfirmationCode < MailserviceDomainAdmin
|
494
|
+
def test_confirmation_code_confirmed
|
495
|
+
result = nil
|
496
|
+
assert_nothing_raised do
|
497
|
+
result = invoke(:admin_get_confirmation_code, "testuser",
|
498
|
+
"address1@foo.test")
|
499
|
+
end
|
500
|
+
assert_equal @loaded_fixtures["confirmationcodes"]\
|
501
|
+
["confirmationcode_testuser_address1"]["code"], result
|
502
|
+
end
|
503
|
+
|
504
|
+
def test_confirmation_code_not_confirmed
|
505
|
+
result = nil
|
506
|
+
assert_nothing_raised do
|
507
|
+
result = invoke(:admin_get_confirmation_code, "testuser",
|
508
|
+
"address2@foo.test")
|
509
|
+
end
|
510
|
+
assert_equal @loaded_fixtures["confirmationcodes"]\
|
511
|
+
["confirmationcode_testuser_address2"]["code"], result
|
512
|
+
end
|
513
|
+
end
|
514
|
+
|
403
515
|
class TC_Mailservice_MailinglistClasses < MailserviceUserLogin
|
404
516
|
|
405
517
|
def setup
|
@@ -412,7 +524,7 @@ class TC_Mailservice_MailinglistClasses < MailserviceUserLogin
|
|
412
524
|
|
413
525
|
def test_get_mailinglist_classes
|
414
526
|
assert_equal [ 'Distribution List', 'Mailing List',
|
415
|
-
'Proxifiable
|
527
|
+
'Proxifiable forwarding mailing list' ],
|
416
528
|
invoke(:mailinglist_classes).sort
|
417
529
|
end
|
418
530
|
|
@@ -442,7 +554,7 @@ end
|
|
442
554
|
class TC_Mailservice_UserMailingLists < MailserviceUserLogin
|
443
555
|
def test_mailinglists
|
444
556
|
user_mailinglists=invoke(:user_mailinglists)
|
445
|
-
assert_equal [ 3 ],
|
557
|
+
assert_equal [ Mailinglist.find(3) ],
|
446
558
|
invoke(:user_mailinglists)
|
447
559
|
assert_equal "testml", invoke(:mailinglist_name,3)
|
448
560
|
end
|
@@ -450,7 +562,39 @@ end
|
|
450
562
|
|
451
563
|
class TC_Mailservice_CreateMailinglist < MailserviceUserLogin
|
452
564
|
def test_create_mailinglist
|
453
|
-
assert_equal
|
565
|
+
assert_equal true,
|
566
|
+
invoke(:mailinglist_create, "testmailinglist", "Mailing List")
|
567
|
+
assert id = invoke(:mailinglist_find_by_name, "testmailinglist")
|
568
|
+
assert invoke(:mailinglist_delete, id)
|
569
|
+
assert_equal nil, invoke(:mailinglist_find_by_name, "testmailinglist")
|
570
|
+
end
|
571
|
+
|
572
|
+
def test_create_mailinglist_nonexistent_class
|
573
|
+
assert_raises RuntimeError,
|
574
|
+
"Class does not exist (check MailinglistClasses for list)" do
|
575
|
+
invoke(:mailinglist_create, "testmailinglist", "nonexistent")
|
576
|
+
end
|
577
|
+
end
|
578
|
+
end
|
579
|
+
|
580
|
+
class TC_Mailservice_GetMailinglistById < MailserviceUserLogin
|
581
|
+
def test_my_mailinglist
|
582
|
+
assert_equal "testml@test.domain", invoke(:mailinglist_address,3)
|
583
|
+
end
|
584
|
+
|
585
|
+
def test_not_my_mailinglist
|
586
|
+
assert_raises RuntimeError, "Permission denied" do
|
587
|
+
invoke(:mailinglist_address,4)
|
588
|
+
end
|
589
|
+
end
|
590
|
+
|
591
|
+
end
|
592
|
+
|
593
|
+
class TC_Mailservice_CreateMailinglist_after_changing_name < TC_Mailservice_UserTasks_RealName
|
594
|
+
def test_create_mailinglist
|
595
|
+
test_change
|
596
|
+
|
597
|
+
assert_equal true,
|
454
598
|
invoke(:mailinglist_create, "testmailinglist", "Mailing List")
|
455
599
|
assert id = invoke(:mailinglist_find_by_name, "testmailinglist")
|
456
600
|
assert invoke(:mailinglist_delete, id)
|
@@ -458,6 +602,7 @@ class TC_Mailservice_CreateMailinglist < MailserviceUserLogin
|
|
458
602
|
end
|
459
603
|
end
|
460
604
|
|
605
|
+
|
461
606
|
class MailserviceUserMailinglist < MailserviceUserLogin
|
462
607
|
def setup
|
463
608
|
super
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../test_helper'
|
2
|
+
require 'navigation_controller'
|
3
|
+
|
4
|
+
# Re-raise errors caught by the controller.
|
5
|
+
class NavigationController; def rescue_action(e) raise e end; end
|
6
|
+
|
7
|
+
class NavigationControllerTest < Test::Unit::TestCase
|
8
|
+
def setup
|
9
|
+
@controller = NavigationController.new
|
10
|
+
@request = ActionController::TestRequest.new
|
11
|
+
@response = ActionController::TestResponse.new
|
12
|
+
end
|
13
|
+
|
14
|
+
# Replace this with your real tests.
|
15
|
+
def test_truth
|
16
|
+
assert true
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../test_helper'
|
2
|
+
require 'root_admin_controller'
|
3
|
+
|
4
|
+
# Re-raise errors caught by the controller.
|
5
|
+
class RootAdminController; def rescue_action(e) raise e end; end
|
6
|
+
|
7
|
+
class RootAdminControllerTest < Test::Unit::TestCase
|
8
|
+
def setup
|
9
|
+
@controller = RootAdminController.new
|
10
|
+
@request = ActionController::TestRequest.new
|
11
|
+
@response = ActionController::TestResponse.new
|
12
|
+
end
|
13
|
+
|
14
|
+
# Replace this with your real tests.
|
15
|
+
def test_truth
|
16
|
+
assert true
|
17
|
+
end
|
18
|
+
end
|
@@ -1,9 +1,8 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/../test_helper'
|
2
2
|
require 'sugoi_admin_controller'
|
3
|
+
require 'pp'
|
3
4
|
|
4
5
|
class SugoiAdminController;
|
5
|
-
# Re-raise errors caught by the controller.
|
6
|
-
def rescue_action(e) raise e end
|
7
6
|
|
8
7
|
@@ask_responses = []
|
9
8
|
|
@@ -15,6 +14,10 @@ class SugoiAdminController;
|
|
15
14
|
# chuck away the prompt
|
16
15
|
return @@ask_responses.shift || "test_password"
|
17
16
|
end
|
17
|
+
|
18
|
+
private
|
19
|
+
# Re-raise errors caught by the controller.
|
20
|
+
def rescue_action(e) raise e end
|
18
21
|
end
|
19
22
|
|
20
23
|
def stuff_ask(*responses)
|
@@ -42,6 +45,42 @@ class SugoiAdminControllerTest < Test::Unit::TestCase
|
|
42
45
|
assert true
|
43
46
|
end
|
44
47
|
|
48
|
+
def test_show_config_all_vars
|
49
|
+
assert_nothing_raised do
|
50
|
+
invoke "show_config"
|
51
|
+
end
|
52
|
+
|
53
|
+
assert_equal @loaded_fixtures["sys_configs"].length,
|
54
|
+
assigns["config_vars"].length
|
55
|
+
end
|
56
|
+
|
57
|
+
|
58
|
+
def test_show_config_one_var
|
59
|
+
assert_nothing_raised do
|
60
|
+
invoke "show_config", "smtpserver"
|
61
|
+
end
|
62
|
+
|
63
|
+
assert_equal "localhost", assigns["config_vars"][0].value
|
64
|
+
end
|
65
|
+
|
66
|
+
def test_set_config_existent_value
|
67
|
+
assert_nothing_raised do
|
68
|
+
invoke "set_config", "smtpserver", "mail.google.com" # heh
|
69
|
+
end
|
70
|
+
|
71
|
+
assert_equal "mail.google.com", SysConfig.smtpserver
|
72
|
+
assert_equal assigns["config_var"].name, "smtpserver"
|
73
|
+
end
|
74
|
+
|
75
|
+
def test_set_config_nonexistent_value
|
76
|
+
assert_nothing_raised do
|
77
|
+
invoke "set_config", "scoobydoobyhoobiefloobiekerwhee", 42
|
78
|
+
end
|
79
|
+
|
80
|
+
assert_equal "scoobydoobyhoobiefloobiekerwhee",
|
81
|
+
assigns["missing_config_name"]
|
82
|
+
end
|
83
|
+
|
45
84
|
def test_list_domains
|
46
85
|
assert_nothing_raised do
|
47
86
|
invoke "list_domains"
|
@@ -272,7 +311,26 @@ class SugoiAdminControllerTest < Test::Unit::TestCase
|
|
272
311
|
assert_equal ["address2@foo.test"], ml.addresses.map { |a| a.address }
|
273
312
|
end
|
274
313
|
|
275
|
-
def
|
314
|
+
def test_unsubscribe_address_from_mailing_list_that_doesnt_exist
|
315
|
+
assert_nothing_raised do
|
316
|
+
invoke "unsubscribe", "nonexistent@test.domain", "address1@foo.test"
|
317
|
+
end
|
318
|
+
|
319
|
+
assert assigns["error"]
|
320
|
+
assert_equal "unsubscribe: Mailing list \"nonexistent@test.domain\" unknown.", assigns["error"]
|
321
|
+
end
|
322
|
+
|
323
|
+
def test_unsubscribe_address_not_actually_subscribed_to_a_mailing_list
|
324
|
+
assert_nothing_raised do
|
325
|
+
invoke "unsubscribe", "testuser@test.domain", "external@foo.test"
|
326
|
+
end
|
327
|
+
|
328
|
+
assert assigns["error"]
|
329
|
+
assert_equal "unsubscribe: Address \"external@foo.test\" not in mailing list \"testuser@test.domain\"", assigns["error"]
|
330
|
+
assert_nil assigns["removed_addresses"]
|
331
|
+
end
|
332
|
+
|
333
|
+
def test_unsubscribe_entirely_unknown_address_from_mailinglist
|
276
334
|
assert_nothing_raised do
|
277
335
|
invoke "unsubscribe", "testuser@test.domain", "nonexistent@foo.test"
|
278
336
|
end
|
@@ -302,7 +360,7 @@ class SugoiAdminControllerTest < Test::Unit::TestCase
|
|
302
360
|
assert assigns.grep(/MailinglistClass/).length == 0
|
303
361
|
|
304
362
|
assert_equal @loaded_fixtures["mailinglist_classes"].length,
|
305
|
-
MailinglistClass.
|
363
|
+
MailinglistClass.find(:all).length
|
306
364
|
end
|
307
365
|
|
308
366
|
def test_init_sysconfigs
|
@@ -317,7 +375,7 @@ class SugoiAdminControllerTest < Test::Unit::TestCase
|
|
317
375
|
assert assigns.grep(/SysConfig/).length == 0
|
318
376
|
|
319
377
|
assert_equal @loaded_fixtures["sys_configs"].length,
|
320
|
-
SysConfig.
|
378
|
+
SysConfig.find(:all).length
|
321
379
|
end
|
322
380
|
|
323
381
|
def test_init_adminmessages
|
@@ -332,7 +390,7 @@ class SugoiAdminControllerTest < Test::Unit::TestCase
|
|
332
390
|
assert assigns.grep(/AdminMessages/).length == 0
|
333
391
|
|
334
392
|
assert_equal @loaded_fixtures["admin_messages"].length,
|
335
|
-
AdminMessage.
|
393
|
+
AdminMessage.find(:all).length
|
336
394
|
end
|
337
395
|
|
338
396
|
def test_init_all
|
@@ -348,13 +406,13 @@ class SugoiAdminControllerTest < Test::Unit::TestCase
|
|
348
406
|
assert_equal 0, assigns["alreadythere"].length
|
349
407
|
|
350
408
|
assert_equal @loaded_fixtures["mailinglist_classes"].length,
|
351
|
-
MailinglistClass.
|
409
|
+
MailinglistClass.find(:all).length
|
352
410
|
assert_equal @loaded_fixtures["sys_configs"].length,
|
353
|
-
SysConfig.
|
411
|
+
SysConfig.find(:all).length
|
354
412
|
assert_equal @loaded_fixtures["admin_messages"].length,
|
355
|
-
AdminMessage.
|
413
|
+
AdminMessage.find(:all).length
|
356
414
|
assert_equal @loaded_fixtures["helps"].length,
|
357
|
-
Help.
|
415
|
+
Help.find(:all).length
|
358
416
|
end
|
359
417
|
|
360
418
|
def test_init_no_clobber_values
|
data/test/functionals.rb
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
require "rubygems"
|
2
|
+
gem "soap4r"
|
3
|
+
|
1
4
|
ENV["RAILS_ENV"] = "test"
|
2
5
|
require File.expand_path(File.dirname(__FILE__) + "/../../config/environment")
|
3
6
|
require 'test_help'
|
@@ -7,7 +10,6 @@ require 'test_help'
|
|
7
10
|
# Test SOAP client
|
8
11
|
#------------------------------------------------------------------------
|
9
12
|
|
10
|
-
require "rubygems"
|
11
13
|
File.unlink *%w{Mailservice.rb
|
12
14
|
MailserviceServiceClient.rb
|
13
15
|
MailserviceDriver.rb} rescue nil
|
data/test/unit/address_test.rb
CHANGED
@@ -2,7 +2,7 @@ require File.dirname(__FILE__) + '/../test_helper'
|
|
2
2
|
|
3
3
|
class AddressTest < Test::Unit::TestCase
|
4
4
|
fixtures :mailinglists, :users, :addresses_mailinglists, :addresses,
|
5
|
-
:domains, :sys_configs
|
5
|
+
:domains, :sys_configs, :proxy_links
|
6
6
|
|
7
7
|
def test_parse_1
|
8
8
|
assert_equal [ 'address1@foo.test', 'Address One'],
|
@@ -36,6 +36,21 @@ class AddressTest < Test::Unit::TestCase
|
|
36
36
|
'an address it doesn\'t know about without a proxy address'
|
37
37
|
end
|
38
38
|
|
39
|
+
def test_proxified_address
|
40
|
+
assert_equal "testuser-42@test.domain",
|
41
|
+
Address.find_by_address("addressmessage1@foo.test").
|
42
|
+
proxified(Mailinglist.find(1)), "proxy link already in fixture"
|
43
|
+
assert_equal "testuser-43@test.domain",
|
44
|
+
Address.find_or_create_by_address("testnonactive@foo.test").
|
45
|
+
proxified(Mailinglist.find(1)), "proxy link not in fixture"
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_outside_address
|
49
|
+
assert_equal false, Address.find(1).outside?
|
50
|
+
assert_equal true, Address.find(3).outside?
|
51
|
+
assert_equal true, Address.find_or_create_by_address("definitely-outside@foo.test").outside?
|
52
|
+
end
|
53
|
+
|
39
54
|
def test_string_conversion
|
40
55
|
assert_equal 'address1@foo.test', Address.find(1).to_s
|
41
56
|
assert_equal 'address2@foo.test', Address.find(2).to_s
|
data/test/unit/domain_test.rb
CHANGED
@@ -113,16 +113,9 @@ class DomainTest < Test::Unit::TestCase
|
|
113
113
|
assert_equal '826005bc4b82d02a3e6097556a45083375fe556c', u.password
|
114
114
|
end
|
115
115
|
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
# unless result == true
|
122
|
-
# d.errors.each do |thing, string|
|
123
|
-
# puts "#{thing}: #{string}"
|
124
|
-
# end
|
125
|
-
# end
|
126
|
-
# assert result
|
127
|
-
# end
|
116
|
+
def test_change_nothing
|
117
|
+
d = Domain.find_by_name "test.domain"
|
118
|
+
result = d.save
|
119
|
+
assert result
|
120
|
+
end
|
128
121
|
end
|
@@ -21,8 +21,8 @@ class MailinglistClassTest < Test::Unit::TestCase
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def test_ltma_parameters
|
24
|
-
assert_equal "
|
25
|
-
assert_equal "
|
24
|
+
assert_equal "Forwarding address",@ltma_class.name
|
25
|
+
assert_equal "Address for forwarding mail to", @ltma_class.description
|
26
26
|
assert_equal false, @ltma_class.moderated
|
27
27
|
assert_equal true, @ltma_class.public
|
28
28
|
assert_equal true, @ltma_class.confirmation
|