sugoi-mail 0.1.0 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (156) hide show
  1. data/INSTALL +94 -0
  2. data/app/apis/mailservice_api.rb +32 -22
  3. data/app/controllers/account_controller.rb +38 -22
  4. data/app/controllers/address_controller.rb +2 -0
  5. data/app/controllers/application.rb +12 -1
  6. data/app/controllers/base_user_controller.rb +29 -0
  7. data/app/controllers/domain_controller.rb +7 -8
  8. data/app/controllers/mail_admin_controller.rb +275 -0
  9. data/app/controllers/mailinglist_controller.rb +68 -14
  10. data/app/controllers/mailservice_controller.rb +116 -94
  11. data/app/controllers/navigation_controller.rb +3 -0
  12. data/app/controllers/root_admin_controller.rb +346 -0
  13. data/app/controllers/sugoi_admin_controller.rb +16 -13
  14. data/app/helpers/base_user_helper.rb +2 -0
  15. data/app/helpers/mail_admin_helper.rb +7 -0
  16. data/app/helpers/navigation_helper.rb +2 -0
  17. data/app/helpers/root_admin_helper.rb +2 -0
  18. data/app/models/address.rb +3 -4
  19. data/app/models/domain.rb +1 -1
  20. data/app/models/mail_admin.rb +2 -0
  21. data/app/models/mailinglist.rb +41 -19
  22. data/app/models/mailinglist_class.rb +1 -0
  23. data/app/models/message.rb +18 -36
  24. data/app/models/proxy_link.rb +14 -6
  25. data/app/views/account/login.rhtml +14 -12
  26. data/app/views/account/logout.rhtml +4 -8
  27. data/app/views/account/welcome.rhtml +3 -13
  28. data/app/views/base_user/add_address.rhtml +3 -0
  29. data/app/views/base_user/edit_address.rhtml +3 -0
  30. data/app/views/base_user/edit_user_list.rhtml +21 -0
  31. data/app/views/base_user/list_mailinglists.rhtml +3 -0
  32. data/app/views/base_user/remove_address.rhtml +3 -0
  33. data/app/views/base_user/unsubscribe_self.rhtml +3 -0
  34. data/app/views/layouts/application.rhtml +47 -0
  35. data/app/views/layouts/login.rhtml +34 -0
  36. data/app/views/layouts/sugoi_admin.rhtml +1 -0
  37. data/app/views/mail_admin/_form.rhtml +11 -0
  38. data/app/views/mail_admin/edit_admin_message.rhtml +12 -0
  39. data/app/views/mail_admin/list_admin_messages.rhtml +20 -0
  40. data/app/views/mail_admin/new_admin_message.rhtml +0 -0
  41. data/app/views/mailinglist/_address_form.rhtml +23 -0
  42. data/app/views/mailinglist/_form.rhtml +10 -14
  43. data/app/views/mailinglist/_new_class_form.rhtml +16 -0
  44. data/app/views/mailinglist/_new_form.rhtml +30 -0
  45. data/app/views/mailinglist/edit.rhtml +11 -5
  46. data/app/views/mailinglist/list.rhtml +15 -15
  47. data/app/views/mailinglist/list_mailinglist_classes.rhtml +18 -0
  48. data/app/views/mailinglist/new.rhtml +5 -5
  49. data/app/views/mailinglist/new_address.rhtml +10 -0
  50. data/app/views/mailinglist/new_mailinglist_class.rhtml +8 -0
  51. data/app/views/mailinglist/show.rhtml +15 -13
  52. data/app/views/navigation/_base_add_address_module.rhtml +2 -0
  53. data/app/views/navigation/_base_edit_address_module.rhtml +2 -0
  54. data/app/views/navigation/_base_edit_user_list_module.rhtml +5 -0
  55. data/app/views/navigation/_base_index_module.rhtml +2 -0
  56. data/app/views/navigation/_base_list_mailinglists_module.rhtml +3 -0
  57. data/app/views/navigation/_base_remove_address_module.rhtml +2 -0
  58. data/app/views/navigation/_base_unsubscribe_self_module.rhtml +2 -0
  59. data/app/views/navigation/_base_welcome_module.rhtml +3 -0
  60. data/app/views/navigation/_nav_module.rhtml +77 -0
  61. data/app/views/navigation/_root_add_address_module.rhtml +3 -0
  62. data/app/views/navigation/_root_add_mailinglist_module.rhtml +3 -0
  63. data/app/views/navigation/_root_add_user_module.rhtml +3 -0
  64. data/app/views/navigation/_root_change_user_password_module.rhtml +3 -0
  65. data/app/views/navigation/_root_edit_address_module.rhtml +13 -0
  66. data/app/views/navigation/_root_edit_mailinglist_module.rhtml +12 -0
  67. data/app/views/navigation/_root_edit_user_list_module.rhtml +3 -0
  68. data/app/views/navigation/_root_edit_user_module.rhtml +10 -0
  69. data/app/views/navigation/_root_index_module.rhtml +4 -0
  70. data/app/views/navigation/_root_list_addresses_module.rhtml +11 -0
  71. data/app/views/navigation/_root_list_mailinglists_module.rhtml +11 -0
  72. data/app/views/navigation/_root_list_users_module.rhtml +12 -0
  73. data/app/views/navigation/_root_remove_address_module.rhtml +12 -0
  74. data/app/views/navigation/_root_remove_mailinglist_module.rhtml +12 -0
  75. data/app/views/navigation/_root_remove_user_module.rhtml +12 -0
  76. data/app/views/navigation/_root_show_user_module.rhtml +10 -0
  77. data/app/views/navigation/_root_welcome_module.rhtml +3 -0
  78. data/app/views/navigation/chooseNav.rhtml +0 -0
  79. data/app/views/navigation/logout.rhtml +8 -0
  80. data/app/views/root_admin/_form.rhtml +21 -0
  81. data/app/views/root_admin/add_address.rhtml +3 -0
  82. data/app/views/root_admin/add_mailinglist.rhtml +3 -0
  83. data/app/views/root_admin/admin_user_list.rhtml +29 -0
  84. data/app/views/root_admin/admin_user_new.rhtml +8 -0
  85. data/app/views/root_admin/change_user_password.rhtml +3 -0
  86. data/app/views/root_admin/edit_address.rhtml +3 -0
  87. data/app/views/root_admin/edit_mailinglist.rhtml +3 -0
  88. data/app/views/root_admin/edit_user_list.rhtml +3 -0
  89. data/app/views/root_admin/list_addresses.rhtml +3 -0
  90. data/app/views/root_admin/list_mailinglists.rhtml +3 -0
  91. data/app/views/root_admin/list_users.rhtml +32 -0
  92. data/app/views/root_admin/remove_address.rhtml +3 -0
  93. data/app/views/root_admin/remove_mailinglist.rhtml +3 -0
  94. data/app/views/root_admin/remove_user.rhtml +3 -0
  95. data/app/views/root_admin/show_user.rhtml +3 -0
  96. data/app/views/sugoi_admin/_command_description.rhtml +1 -1
  97. data/app/views/sugoi_admin/_command_list.rhtml +1 -1
  98. data/app/views/sugoi_admin/create_domain.rhtml +1 -1
  99. data/app/views/sugoi_admin/create_list.rhtml +1 -1
  100. data/app/views/sugoi_admin/create_user.rhtml +1 -1
  101. data/app/views/sugoi_admin/help.rhtml +1 -1
  102. data/app/views/sugoi_admin/init.rhtml +1 -1
  103. data/app/views/sugoi_admin/list_addresses.rhtml +1 -1
  104. data/app/views/sugoi_admin/list_domains.rhtml +1 -1
  105. data/app/views/sugoi_admin/list_mailinglist_classes.rhtml +1 -1
  106. data/app/views/sugoi_admin/list_mailinglists.rhtml +1 -1
  107. data/app/views/sugoi_admin/list_users.rhtml +1 -1
  108. data/app/views/sugoi_admin/set_config.rhtml +4 -1
  109. data/app/views/sugoi_admin/show_config.rhtml +1 -1
  110. data/app/views/sugoi_admin/subscribe.rhtml +1 -1
  111. data/app/views/sugoi_admin/unsubscribe.rhtml +1 -1
  112. data/bin/maild +1 -1
  113. data/bin/sugoi-mail +1 -1
  114. data/config/environment.rb +2 -2
  115. data/config/routes.rb +4 -2
  116. data/db/migrate/028_add_sessions.rb +15 -0
  117. data/db/schema.rb +56 -48
  118. data/lib/login_system.rb +6 -6
  119. data/lib/tasks/release.rake +2 -2
  120. data/public/404.html +27 -5
  121. data/public/500.html +27 -5
  122. data/public/images/celltop1.jpg +0 -0
  123. data/public/images/title11.jpg +0 -0
  124. data/public/{index.html → index_default.html} +0 -0
  125. data/public/javascripts/dragdrop.js +1 -1
  126. data/public/javascripts/effects.js +1 -1
  127. data/public/javascripts/prototype.js +1 -1
  128. data/public/stylesheets/global.css +201 -0
  129. data/public/stylesheets/scaffold.css +176 -11
  130. data/public/stylesheets/trestle.css +176 -11
  131. data/script/cover +6 -0
  132. data/script/process/inspector +3 -0
  133. data/test/all.rb +2 -0
  134. data/test/fixtures/helps.yml +1 -1
  135. data/test/fixtures/mailinglist_classes.yml +4 -4
  136. data/test/fixtures/messages.yml +22 -2
  137. data/test/functional/base_user_controller_test.rb +18 -0
  138. data/test/functional/mail_admin_controller_test.rb +18 -0
  139. data/test/functional/mailservice_controller_test.rb +164 -19
  140. data/test/functional/navigation_controller_test.rb +18 -0
  141. data/test/functional/root_admin_controller_test.rb +18 -0
  142. data/test/functional/sugoi_admin_controller_test.rb +68 -10
  143. data/test/functionals.rb +2 -1
  144. data/test/integration/test_soap.rb +3 -1
  145. data/test/unit/address_test.rb +16 -1
  146. data/test/unit/domain_test.rb +5 -12
  147. data/test/unit/mailinglist_class_test.rb +2 -2
  148. data/test/unit/mailinglist_test.rb +138 -3
  149. data/test/unit/message_test.rb +256 -1
  150. data/test/unit/proxy_link_test.rb +37 -0
  151. data/test/unit/sys_config_test.rb +6 -0
  152. data/test/unit/user_test.rb +20 -0
  153. data/test/units.rb +2 -1
  154. metadata +94 -8
  155. data/app/views/layouts/address.rhtml +0 -13
  156. 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
- assert invoke(:admin_user_signup,"newuser", "password", "password")
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
- assert invoke(:admin_user_delete,"newuser", "newuser")
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
- assert_equal false, invoke(:user_login,"newuser", "password")
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
- assert invoke(:user_login,@admin_name, "foobar")
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
- assert_equal false, invoke(:admin_user_delete,"newuser", "newuser")
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
- assert_equal @new_name, invoke(:user_change_real_name,
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
- assert_equal [ "address2@foo.test", "brandnewuser@foo.test" ],
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 LTMA' ],
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 "testmailinglist@test.domain",
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 test_unsubscribe_address_from_mailinglist_its_not_a_member_of
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.find_all.length
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.find_all.length
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.find_all.length
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.find_all.length
409
+ MailinglistClass.find(:all).length
352
410
  assert_equal @loaded_fixtures["sys_configs"].length,
353
- SysConfig.find_all.length
411
+ SysConfig.find(:all).length
354
412
  assert_equal @loaded_fixtures["admin_messages"].length,
355
- AdminMessage.find_all.length
413
+ AdminMessage.find(:all).length
356
414
  assert_equal @loaded_fixtures["helps"].length,
357
- Help.find_all.length
415
+ Help.find(:all).length
358
416
  end
359
417
 
360
418
  def test_init_no_clobber_values
data/test/functionals.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require File.dirname(__FILE__) + '/test_helper'
2
- Dir["functional/*.rb"].each do |file|
2
+
3
+ Dir[File.join(File.dirname(__FILE__),"functional","*.rb")].each do |file|
3
4
  require file.sub(/.rb$/,'')
4
5
  end
@@ -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
@@ -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
@@ -113,16 +113,9 @@ class DomainTest < Test::Unit::TestCase
113
113
  assert_equal '826005bc4b82d02a3e6097556a45083375fe556c', u.password
114
114
  end
115
115
 
116
- # def test_change_nothing
117
- # d = Domain.find_by_name "test.domain"
118
- # assert_equal 'e7ce1e2e20ec9f11ce8e86c9c47ab9911c1d221e', d.password
119
- # d.password = d.password_confirmation = nil
120
- # result = d.save
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 "LTMA",@ltma_class.name
25
- assert_equal "Lifetime Mail Address", @ltma_class.description
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