enju_trunk_message 0.1.14.pre3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (131) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.rdoc +3 -0
  3. data/Rakefile +46 -0
  4. data/app/controllers/message_requests_controller.rb +62 -0
  5. data/app/controllers/message_templates_controller.rb +17 -0
  6. data/app/controllers/messages_controller.rb +159 -0
  7. data/app/helpers/messages_helper.rb +2 -0
  8. data/app/models/message.rb +85 -0
  9. data/app/models/message_request.rb +97 -0
  10. data/app/models/message_template.rb +39 -0
  11. data/app/views/layouts/messages.html.erb +24 -0
  12. data/app/views/message_requests/edit.html.erb +40 -0
  13. data/app/views/message_requests/index.html.erb +58 -0
  14. data/app/views/message_requests/new.html.erb +40 -0
  15. data/app/views/message_requests/show.html.erb +55 -0
  16. data/app/views/message_templates/_form.html.erb +27 -0
  17. data/app/views/message_templates/edit.html.erb +13 -0
  18. data/app/views/message_templates/index.html.erb +44 -0
  19. data/app/views/message_templates/new.html.erb +12 -0
  20. data/app/views/message_templates/show.html.erb +33 -0
  21. data/app/views/messages/_form.html.erb +37 -0
  22. data/app/views/messages/edit.html.erb +42 -0
  23. data/app/views/messages/index.atom.builder +15 -0
  24. data/app/views/messages/index.html.erb +66 -0
  25. data/app/views/messages/index.rss.builder +41 -0
  26. data/app/views/messages/new.html.erb +43 -0
  27. data/app/views/messages/show.html.erb +48 -0
  28. data/app/views/notifier/message_notification.en.text.erb +14 -0
  29. data/app/views/notifier/message_notification.ja.text.erb +14 -0
  30. data/config/locales/translation_en.yml +51 -0
  31. data/config/locales/translation_ja.yml +51 -0
  32. data/config/routes.rb +9 -0
  33. data/db/fixtures/message_templates.yml +70 -0
  34. data/db/migrate/149_create_message_templates.rb +18 -0
  35. data/db/migrate/154_create_messages.rb +24 -0
  36. data/db/migrate/20080819181903_create_message_requests.rb +20 -0
  37. data/db/migrate/20110913115320_add_lft_and_rgt_to_message.rb +11 -0
  38. data/db/migrate/20120125050502_add_depth_to_message.rb +6 -0
  39. data/lib/enju_message.rb +7 -0
  40. data/lib/enju_message/engine.rb +10 -0
  41. data/lib/enju_message/user.rb +28 -0
  42. data/lib/enju_message/version.rb +3 -0
  43. data/lib/generators/enju_message/views_generator.rb +21 -0
  44. data/lib/tasks/enju_message_tasks.rake +5 -0
  45. data/spec/controllers/message_requests_controller_spec.rb +275 -0
  46. data/spec/controllers/message_templates_controller_spec.rb +439 -0
  47. data/spec/controllers/messages_controller_spec.rb +443 -0
  48. data/spec/dummy/Rakefile +7 -0
  49. data/spec/dummy/app/assets/javascripts/application.js +9 -0
  50. data/spec/dummy/app/assets/stylesheets/application.css +7 -0
  51. data/spec/dummy/app/controllers/application_controller.rb +52 -0
  52. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  53. data/spec/dummy/app/mailers/notifier.rb +30 -0
  54. data/spec/dummy/app/models/ability.rb +30 -0
  55. data/spec/dummy/app/models/library_group.rb +86 -0
  56. data/spec/dummy/app/models/patron.rb +167 -0
  57. data/spec/dummy/app/models/patron_type.rb +19 -0
  58. data/spec/dummy/app/models/role.rb +8 -0
  59. data/spec/dummy/app/models/setting.rb +4 -0
  60. data/spec/dummy/app/models/user.rb +46 -0
  61. data/spec/dummy/app/models/user_group.rb +2 -0
  62. data/spec/dummy/app/models/user_has_role.rb +4 -0
  63. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  64. data/spec/dummy/app/views/page/403.html.erb +9 -0
  65. data/spec/dummy/app/views/page/403.mobile.erb +5 -0
  66. data/spec/dummy/app/views/page/403.xml.erb +4 -0
  67. data/spec/dummy/app/views/page/404.html.erb +9 -0
  68. data/spec/dummy/app/views/page/404.mobile.erb +5 -0
  69. data/spec/dummy/app/views/page/404.xml.erb +4 -0
  70. data/spec/dummy/config.ru +4 -0
  71. data/spec/dummy/config/application.rb +44 -0
  72. data/spec/dummy/config/application.yml +38 -0
  73. data/spec/dummy/config/boot.rb +10 -0
  74. data/spec/dummy/config/database.yml +25 -0
  75. data/spec/dummy/config/environment.rb +5 -0
  76. data/spec/dummy/config/environments/development.rb +30 -0
  77. data/spec/dummy/config/environments/production.rb +60 -0
  78. data/spec/dummy/config/environments/test.rb +39 -0
  79. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  80. data/spec/dummy/config/initializers/devise.rb +205 -0
  81. data/spec/dummy/config/initializers/inflections.rb +10 -0
  82. data/spec/dummy/config/initializers/mime_types.rb +6 -0
  83. data/spec/dummy/config/initializers/resque_mailer.rb +1 -0
  84. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  85. data/spec/dummy/config/initializers/session_store.rb +8 -0
  86. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  87. data/spec/dummy/config/locales/en.yml +5 -0
  88. data/spec/dummy/config/routes.rb +60 -0
  89. data/spec/dummy/db/migrate/001_create_patrons.rb +62 -0
  90. data/spec/dummy/db/migrate/080_create_library_groups.rb +25 -0
  91. data/spec/dummy/db/migrate/20080905191442_create_patron_types.rb +16 -0
  92. data/spec/dummy/db/migrate/20100211105551_add_admin_networks_to_library_group.rb +9 -0
  93. data/spec/dummy/db/migrate/20100222124420_add_allow_bookmark_external_url_to_library_group.rb +9 -0
  94. data/spec/dummy/db/migrate/20100527113752_create_delayed_jobs.rb +21 -0
  95. data/spec/dummy/db/migrate/20110115022329_add_position_to_library_group.rb +9 -0
  96. data/spec/dummy/db/migrate/20110222073537_add_url_to_library_group.rb +9 -0
  97. data/spec/dummy/db/migrate/20111020063828_remove_dsbl_from_library_group.rb +11 -0
  98. data/spec/dummy/db/migrate/20111201121636_create_languages.rb +16 -0
  99. data/spec/dummy/db/migrate/20111201121844_create_roles.rb +12 -0
  100. data/spec/dummy/db/migrate/20111201155456_create_users.rb +14 -0
  101. data/spec/dummy/db/migrate/20111201155513_add_devise_to_users.rb +52 -0
  102. data/spec/dummy/db/migrate/20111201163342_create_user_groups.rb +12 -0
  103. data/spec/dummy/db/migrate/20111201163718_create_user_has_roles.rb +10 -0
  104. data/spec/dummy/db/migrate/20120213092115_add_queue_to_delayed_jobs.rb +9 -0
  105. data/spec/dummy/db/schema.rb +236 -0
  106. data/spec/dummy/public/404.html +26 -0
  107. data/spec/dummy/public/422.html +26 -0
  108. data/spec/dummy/public/500.html +26 -0
  109. data/spec/dummy/public/favicon.ico +0 -0
  110. data/spec/dummy/script/delayed_job +5 -0
  111. data/spec/dummy/script/rails +6 -0
  112. data/spec/factories/message.rb +8 -0
  113. data/spec/factories/message_request.rb +8 -0
  114. data/spec/factories/message_template.rb +7 -0
  115. data/spec/factories/user.rb +34 -0
  116. data/spec/fixtures/library_groups.yml +34 -0
  117. data/spec/fixtures/message_requests.yml +30 -0
  118. data/spec/fixtures/message_templates.yml +85 -0
  119. data/spec/fixtures/messages.yml +62 -0
  120. data/spec/fixtures/patrons.yml +338 -0
  121. data/spec/fixtures/roles.yml +21 -0
  122. data/spec/fixtures/user_groups.yml +25 -0
  123. data/spec/fixtures/user_has_roles.yml +41 -0
  124. data/spec/fixtures/users.yml +71 -0
  125. data/spec/models/message_request_spec.rb +24 -0
  126. data/spec/models/message_spec.rb +59 -0
  127. data/spec/models/message_template_spec.rb +22 -0
  128. data/spec/spec_helper.rb +46 -0
  129. data/spec/support/controller_macros.rb +48 -0
  130. data/spec/support/devise.rb +4 -0
  131. metadata +440 -0
@@ -0,0 +1,24 @@
1
+ class CreateMessages < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :messages, :force => true do |t|
4
+ t.datetime :read_at
5
+ t.integer :receiver_id, :sender_id
6
+ t.string :subject, :null => false
7
+ t.text :body
8
+ t.integer :message_request_id
9
+ t.string :state
10
+ t.integer :parent_id
11
+
12
+ t.timestamps
13
+ end
14
+
15
+ add_index :messages, :sender_id
16
+ add_index :messages, :receiver_id
17
+ add_index :messages, :message_request_id
18
+ add_index :messages, :parent_id
19
+ end
20
+
21
+ def self.down
22
+ drop_table :messages
23
+ end
24
+ end
@@ -0,0 +1,20 @@
1
+ class CreateMessageRequests < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :message_requests do |t|
4
+ t.integer :sender_id
5
+ t.integer :receiver_id
6
+ t.integer :message_template_id
7
+ t.datetime :sent_at
8
+ t.datetime :deleted_at
9
+ t.text :body
10
+ t.string :state
11
+
12
+ t.timestamps
13
+ end
14
+ add_index :message_requests, :state
15
+ end
16
+
17
+ def self.down
18
+ drop_table :message_requests
19
+ end
20
+ end
@@ -0,0 +1,11 @@
1
+ class AddLftAndRgtToMessage < ActiveRecord::Migration
2
+ def self.up
3
+ add_column :messages, :lft, :integer
4
+ add_column :messages, :rgt, :integer
5
+ end
6
+
7
+ def self.down
8
+ remove_column :messages, :rgt
9
+ remove_column :messages, :lft
10
+ end
11
+ end
@@ -0,0 +1,6 @@
1
+ class AddDepthToMessage < ActiveRecord::Migration
2
+ def change
3
+ add_column :messages, :depth, :integer
4
+
5
+ end
6
+ end
@@ -0,0 +1,7 @@
1
+ require "enju_message/engine"
2
+ require "enju_message/user"
3
+
4
+ module EnjuMessage
5
+ end
6
+
7
+ ActiveRecord::Base.send :include, EnjuMessage::MessageUser
@@ -0,0 +1,10 @@
1
+ require 'enju_core'
2
+ require 'state_machine'
3
+ require 'inherited_resources'
4
+ require 'awesome_nested_set'
5
+ require 'resque_mailer'
6
+
7
+ module EnjuMessage
8
+ class Engine < ::Rails::Engine
9
+ end
10
+ end
@@ -0,0 +1,28 @@
1
+ module EnjuMessage
2
+ module MessageUser
3
+ def self.included(base)
4
+ base.extend ClassMethods
5
+ end
6
+
7
+ module ClassMethods
8
+ def enju_message_user
9
+ include InstanceMethods
10
+ has_many :sent_messages, :foreign_key => 'sender_id', :class_name => 'Message'
11
+ has_many :received_messages, :foreign_key => 'receiver_id', :class_name => 'Message'
12
+ end
13
+ end
14
+
15
+ module InstanceMethods
16
+ def send_message(status, options = {})
17
+ MessageRequest.transaction do
18
+ request = MessageRequest.new
19
+ request.sender = self.class.find(1)
20
+ request.receiver = self
21
+ request.message_template = MessageTemplate.localized_template(status, self.locale)
22
+ request.save_message_body(options)
23
+ request.sm_send_message!
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,3 @@
1
+ module EnjuMessage
2
+ VERSION = "0.1.14.pre3"
3
+ end
@@ -0,0 +1,21 @@
1
+ module EnjuMessage
2
+ module Generators
3
+ class ViewsGenerator < Rails::Generators::Base
4
+ source_root File.expand_path('../../../../app/views', __FILE__)
5
+
6
+ def copy_files
7
+ directories = %w(
8
+ layouts
9
+ message_requests
10
+ message_templates
11
+ messages
12
+ notifier
13
+ )
14
+
15
+ directories.each do |dir|
16
+ directory dir, "app/views/#{dir}"
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,5 @@
1
+ require 'active_record/fixtures'
2
+ desc "copy fixtures for enju_message"
3
+ task :enju_message => :environment do
4
+ ActiveRecord::Fixtures.create_fixtures(File.expand_path(File.dirname(__FILE__)) + '/../../db/fixtures/', File.basename('message_templates', '.yml'))
5
+ end
@@ -0,0 +1,275 @@
1
+ require 'spec_helper'
2
+ require 'sunspot/rails/spec_helper'
3
+
4
+ describe MessageRequestsController do
5
+ fixtures :all
6
+ disconnect_sunspot
7
+
8
+ describe "GET index" do
9
+ describe "When logged in as Administrator" do
10
+ login_admin
11
+
12
+ it "assigns all message_requests as @message_requests" do
13
+ get :index
14
+ assigns(:message_requests).should eq(MessageRequest.not_sent.order('created_at DESC').page(1))
15
+ end
16
+ end
17
+
18
+ describe "When logged in as Librarian" do
19
+ login_librarian
20
+
21
+ it "assigns all message_requests as @message_requests" do
22
+ get :index
23
+ assigns(:message_requests).should eq(MessageRequest.not_sent.order('created_at DESC').page(1))
24
+ end
25
+ end
26
+
27
+ describe "When logged in as User" do
28
+ login_user
29
+
30
+ it "assigns all message_requests as @message_requests" do
31
+ get :index
32
+ assigns(:message_requests).should be_empty
33
+ end
34
+ end
35
+
36
+ describe "When not logged in" do
37
+ it "assigns all message_requests as @message_requests" do
38
+ get :index
39
+ assigns(:message_requests).should be_empty
40
+ end
41
+ end
42
+ end
43
+
44
+ describe "GET show" do
45
+ describe "When logged in as Administrator" do
46
+ login_admin
47
+
48
+ it "assigns the requested message_request as @message_request" do
49
+ message_request = FactoryGirl.create(:message_request)
50
+ get :show, :id => message_request.id
51
+ assigns(:message_request).should eq(message_request)
52
+ end
53
+ end
54
+
55
+ describe "When logged in as Librarian" do
56
+ login_librarian
57
+
58
+ it "assigns the requested message_request as @message_request" do
59
+ message_request = FactoryGirl.create(:message_request)
60
+ get :show, :id => message_request.id
61
+ assigns(:message_request).should eq(message_request)
62
+ end
63
+ end
64
+
65
+ describe "When logged in as User" do
66
+ login_user
67
+
68
+ it "assigns the requested message_request as @message_request" do
69
+ message_request = FactoryGirl.create(:message_request)
70
+ get :show, :id => message_request.id
71
+ assigns(:message_request).should eq(message_request)
72
+ end
73
+ end
74
+
75
+ describe "When not logged in" do
76
+ it "assigns the requested message_request as @message_request" do
77
+ message_request = FactoryGirl.create(:message_request)
78
+ get :show, :id => message_request.id
79
+ assigns(:message_request).should eq(message_request)
80
+ end
81
+ end
82
+ end
83
+
84
+ describe "GET edit" do
85
+ describe "When logged in as Administrator" do
86
+ login_admin
87
+
88
+ it "assigns the requested message_request as @message_request" do
89
+ message_request = FactoryGirl.create(:message_request)
90
+ get :edit, :id => message_request.id
91
+ assigns(:message_request).should eq(message_request)
92
+ end
93
+ end
94
+
95
+ describe "When logged in as Librarian" do
96
+ login_librarian
97
+
98
+ it "assigns the requested message_request as @message_request" do
99
+ message_request = FactoryGirl.create(:message_request)
100
+ get :edit, :id => message_request.id
101
+ assigns(:message_request).should eq(message_request)
102
+ end
103
+ end
104
+
105
+ describe "When logged in as User" do
106
+ login_user
107
+
108
+ it "assigns the requested message_request as @message_request" do
109
+ message_request = FactoryGirl.create(:message_request)
110
+ get :edit, :id => message_request.id
111
+ response.should be_forbidden
112
+ end
113
+ end
114
+
115
+ describe "When not logged in" do
116
+ it "should not assign the requested message_request as @message_request" do
117
+ message_request = FactoryGirl.create(:message_request)
118
+ get :edit, :id => message_request.id
119
+ response.should redirect_to(new_user_session_url)
120
+ end
121
+ end
122
+ end
123
+
124
+ describe "PUT update" do
125
+ before(:each) do
126
+ @message_request = FactoryGirl.create(:message_request)
127
+ @attrs = FactoryGirl.attributes_for(:message_request).merge(:body => 'test')
128
+ @invalid_attrs = {:body => ''}
129
+ end
130
+
131
+ describe "When logged in as Administrator" do
132
+ login_admin
133
+
134
+ describe "with valid params" do
135
+ it "updates the requested message_request" do
136
+ put :update, :id => @message_request.id, :message_request => @attrs
137
+ end
138
+
139
+ it "assigns the requested message_request as @message_request" do
140
+ put :update, :id => @message_request.id, :message_request => @attrs
141
+ assigns(:message_request).should eq(@message_request)
142
+ end
143
+ end
144
+
145
+ describe "with invalid params" do
146
+ it "assigns the requested message_request as @message_request" do
147
+ put :update, :id => @message_request.id, :message_request => @invalid_attrs
148
+ response.should render_template("edit")
149
+ end
150
+ end
151
+ end
152
+
153
+ describe "When logged in as Librarian" do
154
+ login_librarian
155
+
156
+ describe "with valid params" do
157
+ it "updates the requested message_request" do
158
+ put :update, :id => @message_request.id, :message_request => @attrs
159
+ end
160
+
161
+ it "assigns the requested message_request as @message_request" do
162
+ put :update, :id => @message_request.id, :message_request => @attrs
163
+ assigns(:message_request).should eq(@message_request)
164
+ response.should redirect_to(@message_request)
165
+ end
166
+ end
167
+
168
+ describe "with invalid params" do
169
+ it "assigns the requested message_request as @message_request" do
170
+ put :update, :id => @message_request.id, :message_request => @invalid_attrs
171
+ response.should render_template("edit")
172
+ end
173
+ end
174
+ end
175
+
176
+ describe "When logged in as User" do
177
+ login_user
178
+
179
+ describe "with valid params" do
180
+ it "updates the requested message_request" do
181
+ put :update, :id => @message_request.id, :message_request => @attrs
182
+ end
183
+
184
+ it "assigns the requested message_request as @message_request" do
185
+ put :update, :id => @message_request.id, :message_request => @attrs
186
+ assigns(:message_request).should eq(@message_request)
187
+ response.should be_forbidden
188
+ end
189
+ end
190
+
191
+ describe "with invalid params" do
192
+ it "assigns the requested message_request as @message_request" do
193
+ put :update, :id => @message_request.id, :message_request => @invalid_attrs
194
+ response.should be_forbidden
195
+ end
196
+ end
197
+ end
198
+
199
+ describe "When not logged in" do
200
+ describe "with valid params" do
201
+ it "updates the requested message_request" do
202
+ put :update, :id => @message_request.id, :message_request => @attrs
203
+ end
204
+
205
+ it "should be forbidden" do
206
+ put :update, :id => @message_request.id, :message_request => @attrs
207
+ response.should redirect_to(new_user_session_url)
208
+ end
209
+ end
210
+
211
+ describe "with invalid params" do
212
+ it "assigns the requested message_request as @message_request" do
213
+ put :update, :id => @message_request.id, :message_request => @invalid_attrs
214
+ response.should redirect_to(new_user_session_url)
215
+ end
216
+ end
217
+ end
218
+ end
219
+
220
+ describe "DELETE destroy" do
221
+ before(:each) do
222
+ @message_request = FactoryGirl.create(:message_request)
223
+ end
224
+
225
+ describe "When logged in as Administrator" do
226
+ login_admin
227
+
228
+ it "destroys the requested message_request" do
229
+ delete :destroy, :id => @message_request.id
230
+ end
231
+
232
+ it "redirects to the harvesting_requests list" do
233
+ delete :destroy, :id => @message_request.id
234
+ response.should redirect_to(message_requests_url)
235
+ end
236
+ end
237
+
238
+ describe "When logged in as Librarian" do
239
+ login_librarian
240
+
241
+ it "destroys the requested message_request" do
242
+ delete :destroy, :id => @message_request.id
243
+ end
244
+
245
+ it "redirects to the harvesting_requests list" do
246
+ delete :destroy, :id => @message_request.id
247
+ response.should redirect_to(message_requests_url)
248
+ end
249
+ end
250
+
251
+ describe "When logged in as User" do
252
+ login_user
253
+
254
+ it "destroys the requested message_request" do
255
+ delete :destroy, :id => @message_request.id
256
+ end
257
+
258
+ it "should be forbidden" do
259
+ delete :destroy, :id => @message_request.id
260
+ response.should be_forbidden
261
+ end
262
+ end
263
+
264
+ describe "When not logged in" do
265
+ it "destroys the requested message_request" do
266
+ delete :destroy, :id => @message_request.id
267
+ end
268
+
269
+ it "should be forbidden" do
270
+ delete :destroy, :id => @message_request.id
271
+ response.should redirect_to(new_user_session_url)
272
+ end
273
+ end
274
+ end
275
+ end
@@ -0,0 +1,439 @@
1
+ require 'spec_helper'
2
+ require 'sunspot/rails/spec_helper'
3
+
4
+ describe MessageTemplatesController do
5
+ fixtures :all
6
+ disconnect_sunspot
7
+
8
+ describe "GET index" do
9
+ describe "When logged in as Administrator" do
10
+ login_admin
11
+
12
+ it "assigns all message_templates as @message_templates" do
13
+ get :index
14
+ assigns(:message_templates).should eq(MessageTemplate.all)
15
+ end
16
+ end
17
+
18
+ describe "When logged in as Librarian" do
19
+ login_librarian
20
+
21
+ it "assigns all message_templates as @message_templates" do
22
+ get :index
23
+ assigns(:message_templates).should eq(MessageTemplate.all)
24
+ end
25
+ end
26
+
27
+ describe "When logged in as User" do
28
+ login_user
29
+
30
+ it "assigns empty as @message_templates" do
31
+ get :index
32
+ assigns(:message_templates).should be_empty
33
+ response.should be_forbidden
34
+ end
35
+ end
36
+
37
+ describe "When not logged in" do
38
+ it "assigns empty as @message_templates" do
39
+ get :index
40
+ assigns(:message_templates).should be_empty
41
+ response.should redirect_to(new_user_session_url)
42
+ end
43
+ end
44
+ end
45
+
46
+ describe "GET show" do
47
+ describe "When logged in as Administrator" do
48
+ login_admin
49
+
50
+ it "assigns the requested message_template as @message_template" do
51
+ message_template = FactoryGirl.create(:message_template)
52
+ get :show, :id => message_template.id
53
+ assigns(:message_template).should eq(message_template)
54
+ end
55
+ end
56
+
57
+ describe "When logged in as Librarian" do
58
+ login_librarian
59
+
60
+ it "assigns the requested message_template as @message_template" do
61
+ message_template = FactoryGirl.create(:message_template)
62
+ get :show, :id => message_template.id
63
+ assigns(:message_template).should eq(message_template)
64
+ end
65
+ end
66
+
67
+ describe "When logged in as User" do
68
+ login_user
69
+
70
+ it "assigns the requested message_template as @message_template" do
71
+ message_template = FactoryGirl.create(:message_template)
72
+ get :show, :id => message_template.id
73
+ assigns(:message_template).should eq(message_template)
74
+ end
75
+ end
76
+
77
+ describe "When not logged in" do
78
+ it "assigns the requested message_template as @message_template" do
79
+ message_template = FactoryGirl.create(:message_template)
80
+ get :show, :id => message_template.id
81
+ assigns(:message_template).should eq(message_template)
82
+ end
83
+ end
84
+ end
85
+
86
+ describe "GET new" do
87
+ describe "When logged in as Administrator" do
88
+ login_admin
89
+
90
+ it "assigns the requested message_template as @message_template" do
91
+ get :new
92
+ assigns(:message_template).should_not be_valid
93
+ response.should be_forbidden
94
+ end
95
+ end
96
+
97
+ describe "When logged in as Librarian" do
98
+ login_librarian
99
+
100
+ it "should not assign the requested message_template as @message_template" do
101
+ get :new
102
+ assigns(:message_template).should_not be_valid
103
+ response.should be_forbidden
104
+ end
105
+ end
106
+
107
+ describe "When logged in as User" do
108
+ login_user
109
+
110
+ it "should not assign the requested message_template as @message_template" do
111
+ get :new
112
+ assigns(:message_template).should_not be_valid
113
+ response.should be_forbidden
114
+ end
115
+ end
116
+
117
+ describe "When not logged in" do
118
+ it "should not assign the requested message_template as @message_template" do
119
+ get :new
120
+ assigns(:message_template).should_not be_valid
121
+ response.should redirect_to(new_user_session_url)
122
+ end
123
+ end
124
+ end
125
+
126
+ describe "GET edit" do
127
+ describe "When logged in as Administrator" do
128
+ login_admin
129
+
130
+ it "assigns the requested message_template as @message_template" do
131
+ message_template = FactoryGirl.create(:message_template)
132
+ get :edit, :id => message_template.id
133
+ assigns(:message_template).should eq(message_template)
134
+ end
135
+ end
136
+
137
+ describe "When logged in as Librarian" do
138
+ login_librarian
139
+
140
+ it "assigns the requested message_template as @message_template" do
141
+ message_template = FactoryGirl.create(:message_template)
142
+ get :edit, :id => message_template.id
143
+ response.should be_forbidden
144
+ end
145
+ end
146
+
147
+ describe "When logged in as User" do
148
+ login_user
149
+
150
+ it "assigns the requested message_template as @message_template" do
151
+ message_template = FactoryGirl.create(:message_template)
152
+ get :edit, :id => message_template.id
153
+ response.should be_forbidden
154
+ end
155
+ end
156
+
157
+ describe "When not logged in" do
158
+ it "should not assign the requested message_template as @message_template" do
159
+ message_template = FactoryGirl.create(:message_template)
160
+ get :edit, :id => message_template.id
161
+ response.should redirect_to(new_user_session_url)
162
+ end
163
+ end
164
+ end
165
+
166
+ describe "POST create" do
167
+ before(:each) do
168
+ @attrs = FactoryGirl.attributes_for(:message_template)
169
+ @invalid_attrs = {:status => ''}
170
+ end
171
+
172
+ describe "When logged in as Administrator" do
173
+ login_admin
174
+
175
+ describe "with valid params" do
176
+ it "assigns a newly created message_template as @message_template" do
177
+ post :create, :message_template => @attrs
178
+ assigns(:message_template).should be_valid
179
+ end
180
+
181
+ it "should be forbidden" do
182
+ post :create, :message_template => @attrs
183
+ response.should be_forbidden
184
+ end
185
+ end
186
+
187
+ describe "with invalid params" do
188
+ it "assigns a newly created but unsaved message_template as @message_template" do
189
+ post :create, :message_template => @invalid_attrs
190
+ assigns(:message_template).should_not be_valid
191
+ end
192
+
193
+ it "should be forbidden" do
194
+ post :create, :message_template => @invalid_attrs
195
+ response.should be_forbidden
196
+ end
197
+ end
198
+ end
199
+
200
+ describe "When logged in as Librarian" do
201
+ login_librarian
202
+
203
+ describe "with valid params" do
204
+ it "assigns a newly created message_template as @message_template" do
205
+ post :create, :message_template => @attrs
206
+ assigns(:message_template).should be_valid
207
+ end
208
+
209
+ it "should be forbidden" do
210
+ post :create, :message_template => @attrs
211
+ response.should be_forbidden
212
+ end
213
+ end
214
+
215
+ describe "with invalid params" do
216
+ it "assigns a newly created but unsaved message_template as @message_template" do
217
+ post :create, :message_template => @invalid_attrs
218
+ assigns(:message_template).should_not be_valid
219
+ end
220
+
221
+ it "should be forbidden" do
222
+ post :create, :message_template => @invalid_attrs
223
+ response.should be_forbidden
224
+ end
225
+ end
226
+ end
227
+
228
+ describe "When logged in as User" do
229
+ login_user
230
+
231
+ describe "with valid params" do
232
+ it "assigns a newly created message_template as @message_template" do
233
+ post :create, :message_template => @attrs
234
+ assigns(:message_template).should be_valid
235
+ end
236
+
237
+ it "should be forbidden" do
238
+ post :create, :message_template => @attrs
239
+ response.should be_forbidden
240
+ end
241
+ end
242
+
243
+ describe "with invalid params" do
244
+ it "assigns a newly created but unsaved message_template as @message_template" do
245
+ post :create, :message_template => @invalid_attrs
246
+ assigns(:message_template).should_not be_valid
247
+ end
248
+
249
+ it "should be forbidden" do
250
+ post :create, :message_template => @invalid_attrs
251
+ response.should be_forbidden
252
+ end
253
+ end
254
+ end
255
+
256
+ describe "When not logged in" do
257
+ describe "with valid params" do
258
+ it "assigns a newly created message_template as @message_template" do
259
+ post :create, :message_template => @attrs
260
+ assigns(:message_template).should be_valid
261
+ end
262
+
263
+ it "should be forbidden" do
264
+ post :create, :message_template => @attrs
265
+ response.should redirect_to(new_user_session_url)
266
+ end
267
+ end
268
+
269
+ describe "with invalid params" do
270
+ it "assigns a newly created but unsaved message_template as @message_template" do
271
+ post :create, :message_template => @invalid_attrs
272
+ assigns(:message_template).should_not be_valid
273
+ end
274
+
275
+ it "should be forbidden" do
276
+ post :create, :message_template => @invalid_attrs
277
+ response.should redirect_to(new_user_session_url)
278
+ end
279
+ end
280
+ end
281
+ end
282
+
283
+ describe "PUT update" do
284
+ before(:each) do
285
+ @message_template = FactoryGirl.create(:message_template)
286
+ @attrs = FactoryGirl.attributes_for(:message_template)
287
+ @invalid_attrs = {:status => ''}
288
+ end
289
+
290
+ describe "When logged in as Administrator" do
291
+ login_admin
292
+
293
+ describe "with valid params" do
294
+ it "updates the requested message_template" do
295
+ put :update, :id => @message_template.id, :message_template => @attrs
296
+ end
297
+
298
+ it "assigns the requested message_template as @message_template" do
299
+ put :update, :id => @message_template.id, :message_template => @attrs
300
+ assigns(:message_template).should eq(@message_template)
301
+ end
302
+
303
+ it "moves its position when specified" do
304
+ put :update, :id => @message_template.id, :message_template => @attrs, :move => 'lower'
305
+ response.should redirect_to(message_templates_url)
306
+ end
307
+ end
308
+
309
+ describe "with invalid params" do
310
+ it "assigns the requested message_template as @message_template" do
311
+ put :update, :id => @message_template.id, :message_template => @invalid_attrs
312
+ response.should render_template("edit")
313
+ end
314
+ end
315
+ end
316
+
317
+ describe "When logged in as Librarian" do
318
+ login_librarian
319
+
320
+ describe "with valid params" do
321
+ it "updates the requested message_template" do
322
+ put :update, :id => @message_template.id, :message_template => @attrs
323
+ end
324
+
325
+ it "assigns the requested message_template as @message_template" do
326
+ put :update, :id => @message_template.id, :message_template => @attrs
327
+ assigns(:message_template).should eq(@message_template)
328
+ response.should be_forbidden
329
+ end
330
+ end
331
+
332
+ describe "with invalid params" do
333
+ it "assigns the requested message_template as @message_template" do
334
+ put :update, :id => @message_template.id, :message_template => @invalid_attrs
335
+ response.should be_forbidden
336
+ end
337
+ end
338
+ end
339
+
340
+ describe "When logged in as User" do
341
+ login_user
342
+
343
+ describe "with valid params" do
344
+ it "updates the requested message_template" do
345
+ put :update, :id => @message_template.id, :message_template => @attrs
346
+ end
347
+
348
+ it "assigns the requested message_template as @message_template" do
349
+ put :update, :id => @message_template.id, :message_template => @attrs
350
+ assigns(:message_template).should eq(@message_template)
351
+ response.should be_forbidden
352
+ end
353
+ end
354
+
355
+ describe "with invalid params" do
356
+ it "assigns the requested message_template as @message_template" do
357
+ put :update, :id => @message_template.id, :message_template => @invalid_attrs
358
+ response.should be_forbidden
359
+ end
360
+ end
361
+ end
362
+
363
+ describe "When not logged in" do
364
+ describe "with valid params" do
365
+ it "updates the requested message_template" do
366
+ put :update, :id => @message_template.id, :message_template => @attrs
367
+ end
368
+
369
+ it "should be forbidden" do
370
+ put :update, :id => @message_template.id, :message_template => @attrs
371
+ response.should redirect_to(new_user_session_url)
372
+ end
373
+ end
374
+
375
+ describe "with invalid params" do
376
+ it "assigns the requested message_template as @message_template" do
377
+ put :update, :id => @message_template.id, :message_template => @invalid_attrs
378
+ response.should redirect_to(new_user_session_url)
379
+ end
380
+ end
381
+ end
382
+ end
383
+
384
+ describe "DELETE destroy" do
385
+ before(:each) do
386
+ @message_template = FactoryGirl.create(:message_template)
387
+ end
388
+
389
+ describe "When logged in as Administrator" do
390
+ login_admin
391
+
392
+ it "destroys the requested message_template" do
393
+ delete :destroy, :id => @message_template.id
394
+ end
395
+
396
+ it "should be forbidden" do
397
+ delete :destroy, :id => @message_template.id
398
+ response.should be_forbidden
399
+ end
400
+ end
401
+
402
+ describe "When logged in as Librarian" do
403
+ login_librarian
404
+
405
+ it "destroys the requested message_template" do
406
+ delete :destroy, :id => @message_template.id
407
+ end
408
+
409
+ it "should be forbidden" do
410
+ delete :destroy, :id => @message_template.id
411
+ response.should be_forbidden
412
+ end
413
+ end
414
+
415
+ describe "When logged in as User" do
416
+ login_user
417
+
418
+ it "destroys the requested message_template" do
419
+ delete :destroy, :id => @message_template.id
420
+ end
421
+
422
+ it "should be forbidden" do
423
+ delete :destroy, :id => @message_template.id
424
+ response.should be_forbidden
425
+ end
426
+ end
427
+
428
+ describe "When not logged in" do
429
+ it "destroys the requested message_template" do
430
+ delete :destroy, :id => @message_template.id
431
+ end
432
+
433
+ it "should be forbidden" do
434
+ delete :destroy, :id => @message_template.id
435
+ response.should redirect_to(new_user_session_url)
436
+ end
437
+ end
438
+ end
439
+ end