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.
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,20 +1,185 @@
1
- body { background-color: #fff; color: #333; }
1
+ /* component positions */
2
+
3
+ /* center and confine the image */
4
+
5
+ #windowCenter {
6
+ margin-left: auto;
7
+ margin-right: auto;
8
+ top: -10px;
9
+ position: relative;
10
+ width: 99%;
11
+ height: 100%;
12
+ /*
13
+ border: 1px;
14
+ border-style: solid;
15
+ border-color: magenta;*/
16
+ }
17
+
18
+ #windowConstrain {
19
+ width: 800px;
20
+ position: relative;
21
+ top: 0px;
22
+ height: 100%;
23
+ /*border-left: 1px solid #c0cdc0;
24
+ border-right: 1px solid #c0cdc0;*/
25
+ overflow: visible;
26
+ }
27
+
28
+ #titlebar {
29
+ position: relative;
30
+ top: 10px;
31
+ left: 0px;
32
+ float: none;
33
+ background-image: url('../images/title11.jpg');
34
+ /* take border stuff out after image is in place? */
35
+ /*border: 1px;
36
+ border-style: solid;
37
+ border-color: #c0cdc0;*/
38
+ border: 1px solid #c0cdc0;
39
+ width: 780px;
40
+ height: 150px;
41
+ padding: 0px 0px 0px 0px;
42
+ margin: 0px 0px 0px 0px;
43
+ }
44
+
45
+ #content {
46
+ position: relative;
47
+ top: 20px;
48
+ left: 9px;
49
+ width: 600px;
50
+ float: left;
51
+ /*height: 300px;*/
52
+ border: 1px solid #c0cdc0;
53
+ margin: 0px 0px 100px 0px;
54
+ padding: 0px;
55
+ padding-top: 20px;
56
+ padding-left: 10px;
57
+ padding-bottom: 10px;
58
+ clear: none;
59
+ background: url('../images/celltop1.jpg') repeat-x;
60
+ }
61
+
62
+ #navbar {
63
+ clear: none;
64
+ float: right;
65
+ position: relative;
66
+ top: 20px;
67
+ left: -9px;
68
+ width: 150px;
69
+ height: 300px;
70
+ border: 1px solid #c0cdc0;
71
+ margin: 0px 0px 0px 0px;
72
+ padding: 0px 0px 0px 0px;
73
+ display: inline;
74
+ background: url('../images/celltop1.jpg') repeat-x;
75
+ }
76
+
77
+ #navFrame {
78
+ position: relative;
79
+ border: 0px;
80
+ left: -7px;
81
+ display: inline;
82
+ }
83
+
84
+ #loginbar {
85
+ position: relative;
86
+ float: right;
87
+ top: 20px;
88
+ right: 9px;
89
+ border: 0px;
90
+ width: 250px;
91
+ height: 150px;
92
+ border: 1px solid #c0cdc0;
93
+ margin: 0px;
94
+ padding: 0px;
95
+ padding-left: 10px;
96
+ display: inline;
97
+ background: url('../images/celltop1.jpg') repeat-x;
98
+ }
99
+
100
+ #loginFrame {
101
+ position: relative;
102
+ border: 0px;
103
+ left: -7px;
104
+ display: inline;
105
+ }
106
+
107
+ .loginInput {
108
+ position: relative;
109
+ left: 26px;
110
+ }
111
+
112
+ #signature {
113
+ position: relative;
114
+ top: 200px;
115
+ right: 0px;
116
+ font-size: 10;
117
+ display: inline;
118
+ }
119
+
120
+ #contentAlign {
121
+ position: relative;
122
+ left: 10px;
123
+ top: -8px;
124
+ }
125
+
126
+ .login {
127
+ border-style: solid;
128
+ border-width: 1px;
129
+ border-color: #c0cdc0;
130
+ padding: 0px;
131
+ }
132
+
133
+ .link {
134
+ position: relative;
135
+ left: -1px;
136
+ background: #f4f4f4;
137
+ border-top: 1px solid #c0cdc0;
138
+ border-bottom: 1px solid #c0cdc0;
139
+ width: 152px;
140
+ }
141
+
142
+ .item {
143
+ font-size: 11;
144
+ font-weight: bold;
145
+ }
146
+
147
+ .small {
148
+ font-size: 9;
149
+ }
150
+
151
+ /* general styles */
152
+
153
+ ul {
154
+ list-style-type: square;
155
+ }
156
+
157
+ br {
158
+ line-height: 10px;
159
+ }
2
160
 
3
161
  body, p, ol, ul, td {
4
- font-family: verdana, arial, helvetica, sans-serif;
5
- font-size: 13px;
6
- line-height: 18px;
162
+ font-family: Monaco, Helvetica, sans-serif;
163
+ color: #444;
164
+ font-size: 13px;
7
165
  }
8
166
 
9
- pre {
10
- background-color: #eee;
11
- padding: 10px;
12
- font-size: 11px;
167
+ a {
168
+ color: #444;
169
+ text-decoration: none;
13
170
  }
14
171
 
15
- a { color: #000; }
16
- a:visited { color: #666; }
17
- a:hover { color: #fff; background-color:#000; }
172
+ a:visited {
173
+ color: #444;
174
+ }
175
+
176
+ a:hover {
177
+ color: #999;
178
+ }
179
+
180
+ .center {
181
+ text-align: center;
182
+ }
18
183
 
19
184
  .fieldWithErrors {
20
185
  padding: 2px;
@@ -1,20 +1,185 @@
1
- body { background-color: #fff; color: #333; }
1
+ /* component positions */
2
+
3
+ /* center and confine the image */
4
+
5
+ #windowCenter {
6
+ margin-left: auto;
7
+ margin-right: auto;
8
+ top: -10px;
9
+ position: relative;
10
+ width: 99%;
11
+ height: 100%;
12
+ /*
13
+ border: 1px;
14
+ border-style: solid;
15
+ border-color: magenta;*/
16
+ }
17
+
18
+ #windowConstrain {
19
+ width: 800px;
20
+ position: relative;
21
+ top: 0px;
22
+ height: 100%;
23
+ /*border-left: 1px solid #c0cdc0;
24
+ border-right: 1px solid #c0cdc0;*/
25
+ overflow: visible;
26
+ }
27
+
28
+ #titlebar {
29
+ position: relative;
30
+ top: 10px;
31
+ left: 0px;
32
+ float: none;
33
+ background-image: url('../images/title11.jpg');
34
+ /* take border stuff out after image is in place? */
35
+ /*border: 1px;
36
+ border-style: solid;
37
+ border-color: #c0cdc0;*/
38
+ border: 1px solid #c0cdc0;
39
+ width: 780px;
40
+ height: 150px;
41
+ padding: 0px 0px 0px 0px;
42
+ margin: 0px 0px 0px 0px;
43
+ }
44
+
45
+ #content {
46
+ position: relative;
47
+ top: 20px;
48
+ left: 9px;
49
+ width: 600px;
50
+ float: left;
51
+ /*height: 300px;*/
52
+ border: 1px solid #c0cdc0;
53
+ margin: 0px 0px 100px 0px;
54
+ padding: 0px;
55
+ padding-top: 20px;
56
+ padding-left: 10px;
57
+ padding-bottom: 10px;
58
+ clear: none;
59
+ background: url('../images/celltop1.jpg') repeat-x;
60
+ }
61
+
62
+ #navbar {
63
+ clear: none;
64
+ float: right;
65
+ position: relative;
66
+ top: 20px;
67
+ left: -9px;
68
+ width: 150px;
69
+ height: 300px;
70
+ border: 1px solid #c0cdc0;
71
+ margin: 0px 0px 0px 0px;
72
+ padding: 0px 0px 0px 0px;
73
+ display: inline;
74
+ background: url('../images/celltop1.jpg') repeat-x;
75
+ }
76
+
77
+ #navFrame {
78
+ position: relative;
79
+ border: 0px;
80
+ left: -7px;
81
+ display: inline;
82
+ }
83
+
84
+ #loginbar {
85
+ position: relative;
86
+ float: right;
87
+ top: 20px;
88
+ right: 9px;
89
+ border: 0px;
90
+ width: 250px;
91
+ height: 150px;
92
+ border: 1px solid #c0cdc0;
93
+ margin: 0px;
94
+ padding: 0px;
95
+ padding-left: 10px;
96
+ display: inline;
97
+ background: url('../images/celltop1.jpg') repeat-x;
98
+ }
99
+
100
+ #loginFrame {
101
+ position: relative;
102
+ border: 0px;
103
+ left: -7px;
104
+ display: inline;
105
+ }
106
+
107
+ .loginInput {
108
+ position: relative;
109
+ left: 26px;
110
+ }
111
+
112
+ #signature {
113
+ position: relative;
114
+ top: 200px;
115
+ right: 0px;
116
+ font-size: 10;
117
+ display: inline;
118
+ }
119
+
120
+ #contentAlign {
121
+ position: relative;
122
+ left: 10px;
123
+ top: -8px;
124
+ }
125
+
126
+ .login {
127
+ border-style: solid;
128
+ border-width: 1px;
129
+ border-color: #c0cdc0;
130
+ padding: 0px;
131
+ }
132
+
133
+ .link {
134
+ position: relative;
135
+ left: -1px;
136
+ background: #f4f4f4;
137
+ border-top: 1px solid #c0cdc0;
138
+ border-bottom: 1px solid #c0cdc0;
139
+ width: 152px;
140
+ }
141
+
142
+ .item {
143
+ font-size: 11;
144
+ font-weight: bold;
145
+ }
146
+
147
+ .small {
148
+ font-size: 9;
149
+ }
150
+
151
+ /* general styles */
152
+
153
+ ul {
154
+ list-style-type: square;
155
+ }
156
+
157
+ br {
158
+ line-height: 10px;
159
+ }
2
160
 
3
161
  body, p, ol, ul, td {
4
- font-family: verdana, arial, helvetica, sans-serif;
5
- font-size: 13px;
6
- line-height: 18px;
162
+ font-family: Monaco, Helvetica, sans-serif;
163
+ color: #444;
164
+ font-size: 13px;
7
165
  }
8
166
 
9
- pre {
10
- background-color: #eee;
11
- padding: 10px;
12
- font-size: 11px;
167
+ a {
168
+ color: #444;
169
+ text-decoration: none;
13
170
  }
14
171
 
15
- a { color: #000; }
16
- a:visited { color: #666; }
17
- a:hover { color: #fff; background-color:#000; }
172
+ a:visited {
173
+ color: #444;
174
+ }
175
+
176
+ a:hover {
177
+ color: #999;
178
+ }
179
+
180
+ .center {
181
+ text-align: center;
182
+ }
18
183
 
19
184
  .fieldWithErrors {
20
185
  padding: 2px;
data/script/cover ADDED
@@ -0,0 +1,6 @@
1
+ #!/bin/sh
2
+
3
+ RAILS_ENV=coverage
4
+ export RAILS_ENV
5
+ rake db:fixtures:load
6
+ rcov --rails --sort coverage "$@"
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../../config/boot'
3
+ require 'commands/process/inspector'
data/test/all.rb ADDED
@@ -0,0 +1,2 @@
1
+ require "test/units"
2
+ require "test/functionals"
@@ -88,7 +88,7 @@ help_10:
88
88
  summary: Outputs a list of mailing list classes defined
89
89
  help_11:
90
90
  command: create_list
91
- parameters: <mailinglist class> <mailinglist name> <domain name> <user name> [<description>]
91
+ parameters: <mailinglist name> <domain name> <user name> [<description>] [<mailinglist class>]
92
92
  facility: SugoiAdminController
93
93
  explanation: >
94
94
  Creates a mailing list of class <mailinglist class> (use the
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  mailinglist_class_ltma:
3
- name: LTMA
3
+ name: Forwarding address
4
4
  moderated: false
5
5
  public: true
6
6
  confirmation: true
7
7
  joinable: false
8
8
  id: 1
9
9
  closed: false
10
- description: Lifetime Mail Address
10
+ description: Address for forwarding mail to
11
11
  archived: false
12
12
  proxify: false
13
13
  mailinglist_class_mailing_list:
@@ -33,13 +33,13 @@ mailinglist_class_distribution_list:
33
33
  archived: false
34
34
  proxify: false
35
35
  mailinglist_class_proxified_ltma:
36
- name: Proxifiable LTMA
36
+ name: Proxifiable forwarding mailing list
37
37
  moderated: false
38
38
  public: true
39
39
  confirmation: true
40
40
  joinable: false
41
41
  id: 4
42
42
  closed: false
43
- description: Lifetime Mail Address, with proxying
43
+ description: Forwarding address with address rewriting.
44
44
  archived: false
45
45
  proxify: true
@@ -120,8 +120,8 @@ message_7:
120
120
  messageid: <testmessage-7@foo.test>
121
121
  envelope_from: testuser@test.domain
122
122
  envelope_to: plainrewrite#foo.test@test.domain
123
- mailinglist_id:
124
- address_id:
123
+ mailinglist_id: 1
124
+ address_id: 1
125
125
  parent_id:
126
126
  headers: |
127
127
  To: plainrewrite#foo.test@test.domain
@@ -152,3 +152,23 @@ message_8:
152
152
 
153
153
  This one gets rewritten to have a To line of nodesc, right?
154
154
 
155
+
156
+ message_9:
157
+ id: 9
158
+ timestamp: 2006-11-11 19:13:00 +09:00
159
+ messageid: <testmessage-9@foo.test>
160
+ envelope_from: external@foo.test
161
+ envelope_to: proxuser@test.domain
162
+ mailinglist_id: 7
163
+ address_id: 10
164
+ parent_id: 6
165
+ headers: |
166
+ To: proxuser@test.domain
167
+ From: external@foo.test
168
+ Subject: Test response
169
+ Date: Thu, 11 Nov 2006 19:13:00 +0900 (JST)
170
+ Message-ID: <testmessage-9@foo.test>
171
+ In-Reply-To: <testmessage-7@foo.test>
172
+ body: |
173
+
174
+ This is a reply.
@@ -0,0 +1,18 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+ require 'base_user_controller'
3
+
4
+ # Re-raise errors caught by the controller.
5
+ class BaseUserController; def rescue_action(e) raise e end; end
6
+
7
+ class BaseUserControllerTest < Test::Unit::TestCase
8
+ def setup
9
+ @controller = BaseUserController.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 'mail_admin_controller'
3
+
4
+ # Re-raise errors caught by the controller.
5
+ class MailAdminController; def rescue_action(e) raise e end; end
6
+
7
+ class MailAdminControllerTest < Test::Unit::TestCase
8
+ def setup
9
+ @controller = MailAdminController.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