enju_event 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (172) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.rdoc +3 -0
  3. data/Rakefile +36 -0
  4. data/app/controllers/calendar_controller.rb +34 -0
  5. data/app/controllers/event_categories_controller.rb +18 -0
  6. data/app/controllers/event_import_files_controller.rb +95 -0
  7. data/app/controllers/event_import_results_controller.rb +15 -0
  8. data/app/controllers/events_controller.rb +152 -0
  9. data/app/controllers/participates_controller.rb +81 -0
  10. data/app/helpers/calendar_helper.rb +31 -0
  11. data/app/models/event.rb +87 -0
  12. data/app/models/event_category.rb +23 -0
  13. data/app/models/event_import_file.rb +166 -0
  14. data/app/models/event_import_result.rb +23 -0
  15. data/app/models/participate.rb +25 -0
  16. data/app/views/calendar/index.html.erb +45 -0
  17. data/app/views/event_categories/_form.html.erb +19 -0
  18. data/app/views/event_categories/edit.html.erb +13 -0
  19. data/app/views/event_categories/index.html.erb +46 -0
  20. data/app/views/event_categories/new.html.erb +12 -0
  21. data/app/views/event_categories/show.html.erb +29 -0
  22. data/app/views/event_import_files/edit.html.erb +25 -0
  23. data/app/views/event_import_files/index.html.erb +40 -0
  24. data/app/views/event_import_files/new.html.erb +37 -0
  25. data/app/views/event_import_files/show.html.erb +64 -0
  26. data/app/views/event_import_results/index.csv.erb +3 -0
  27. data/app/views/event_import_results/index.html.erb +50 -0
  28. data/app/views/event_import_results/show.html.erb +33 -0
  29. data/app/views/events/_all_day.html.erb +24 -0
  30. data/app/views/events/_form.html.erb +44 -0
  31. data/app/views/events/edit.html.erb +14 -0
  32. data/app/views/events/index.atom.builder +10 -0
  33. data/app/views/events/index.csv.erb +4 -0
  34. data/app/views/events/index.html.erb +105 -0
  35. data/app/views/events/index.ics.erb +13 -0
  36. data/app/views/events/index.mobile.erb +49 -0
  37. data/app/views/events/index.rss.builder +34 -0
  38. data/app/views/events/new.html.erb +17 -0
  39. data/app/views/events/show.html.erb +50 -0
  40. data/app/views/events/show.mobile.erb +42 -0
  41. data/app/views/participates/edit.html.erb +28 -0
  42. data/app/views/participates/index.html.erb +30 -0
  43. data/app/views/participates/new.html.erb +27 -0
  44. data/app/views/participates/show.html.erb +24 -0
  45. data/config/routes.rb +10 -0
  46. data/db/fixtures/event_categories.yml +13 -0
  47. data/db/migrate/113_create_events.rb +23 -0
  48. data/db/migrate/114_create_event_categories.rb +16 -0
  49. data/db/migrate/20081028093607_create_event_import_files.rb +29 -0
  50. data/db/migrate/20090519203307_create_participates.rb +17 -0
  51. data/db/migrate/20100925074639_create_event_import_results.rb +15 -0
  52. data/lib/enju_event.rb +5 -0
  53. data/lib/enju_event/engine.rb +18 -0
  54. data/lib/enju_event/version.rb +3 -0
  55. data/lib/tasks/enju_event_tasks.rake +5 -0
  56. data/spec/controllers/event_categories_controller_spec.rb +483 -0
  57. data/spec/controllers/event_import_files_controller_spec.rb +321 -0
  58. data/spec/controllers/events_controller_spec.rb +506 -0
  59. data/spec/dummy/Rakefile +7 -0
  60. data/spec/dummy/app/assets/javascripts/application.js +9 -0
  61. data/spec/dummy/app/assets/stylesheets/application.css +7 -0
  62. data/spec/dummy/app/controllers/application_controller.rb +99 -0
  63. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  64. data/spec/dummy/app/mailers/notifier.rb +28 -0
  65. data/spec/dummy/app/models/ability.rb +39 -0
  66. data/spec/dummy/app/models/language.rb +4 -0
  67. data/spec/dummy/app/models/library.rb +128 -0
  68. data/spec/dummy/app/models/library_group.rb +86 -0
  69. data/spec/dummy/app/models/patron.rb +163 -0
  70. data/spec/dummy/app/models/patron_type.rb +19 -0
  71. data/spec/dummy/app/models/role.rb +8 -0
  72. data/spec/dummy/app/models/shelf.rb +54 -0
  73. data/spec/dummy/app/models/user.rb +43 -0
  74. data/spec/dummy/app/models/user_group.rb +2 -0
  75. data/spec/dummy/app/models/user_has_role.rb +4 -0
  76. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  77. data/spec/dummy/app/views/page/403.html.erb +9 -0
  78. data/spec/dummy/app/views/page/403.mobile.erb +5 -0
  79. data/spec/dummy/app/views/page/403.xml.erb +4 -0
  80. data/spec/dummy/app/views/page/404.html.erb +9 -0
  81. data/spec/dummy/app/views/page/404.mobile.erb +5 -0
  82. data/spec/dummy/app/views/page/404.xml.erb +4 -0
  83. data/spec/dummy/config.ru +4 -0
  84. data/spec/dummy/config/application.rb +45 -0
  85. data/spec/dummy/config/boot.rb +10 -0
  86. data/spec/dummy/config/database.yml +25 -0
  87. data/spec/dummy/config/environment.rb +5 -0
  88. data/spec/dummy/config/environments/development.rb +30 -0
  89. data/spec/dummy/config/environments/production.rb +60 -0
  90. data/spec/dummy/config/environments/test.rb +39 -0
  91. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  92. data/spec/dummy/config/initializers/devise.rb +209 -0
  93. data/spec/dummy/config/initializers/inflections.rb +10 -0
  94. data/spec/dummy/config/initializers/mime_types.rb +7 -0
  95. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  96. data/spec/dummy/config/initializers/session_store.rb +8 -0
  97. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  98. data/spec/dummy/config/locales/en.yml +5 -0
  99. data/spec/dummy/config/routes.rb +60 -0
  100. data/spec/dummy/db/migrate/001_create_patrons.rb +62 -0
  101. data/spec/dummy/db/migrate/059_create_libraries.rb +34 -0
  102. data/spec/dummy/db/migrate/069_create_shelves.rb +19 -0
  103. data/spec/dummy/db/migrate/080_create_library_groups.rb +25 -0
  104. data/spec/dummy/db/migrate/20080905191442_create_patron_types.rb +16 -0
  105. data/spec/dummy/db/migrate/20081025083905_create_languages.rb +27 -0
  106. data/spec/dummy/db/migrate/20100211105551_add_admin_networks_to_library_group.rb +9 -0
  107. data/spec/dummy/db/migrate/20100222124420_add_allow_bookmark_external_url_to_library_group.rb +9 -0
  108. data/spec/dummy/db/migrate/20100527113752_create_delayed_jobs.rb +21 -0
  109. data/spec/dummy/db/migrate/20110115022329_add_position_to_library_group.rb +9 -0
  110. data/spec/dummy/db/migrate/20110222073537_add_url_to_library_group.rb +9 -0
  111. data/spec/dummy/db/migrate/20111020063828_remove_dsbl_from_library_group.rb +11 -0
  112. data/spec/dummy/db/migrate/20111201121844_create_roles.rb +12 -0
  113. data/spec/dummy/db/migrate/20111201155456_create_users.rb +14 -0
  114. data/spec/dummy/db/migrate/20111201155513_add_devise_to_users.rb +31 -0
  115. data/spec/dummy/db/migrate/20111201163342_create_user_groups.rb +12 -0
  116. data/spec/dummy/db/migrate/20111201163718_create_user_has_roles.rb +10 -0
  117. data/spec/dummy/db/schema.rb +293 -0
  118. data/spec/dummy/db/test.sqlite3 +0 -0
  119. data/spec/dummy/lib/enju_leaf.rb +4 -0
  120. data/spec/dummy/lib/enju_leaf/import_file.rb +13 -0
  121. data/spec/dummy/lib/enju_leaf/localized_name.rb +13 -0
  122. data/spec/dummy/lib/enju_leaf/master_model.rb +41 -0
  123. data/spec/dummy/lib/enju_leaf/url_validator.rb +10 -0
  124. data/spec/dummy/log/sunspot-solr-test.log +222 -0
  125. data/spec/dummy/log/test.log +145759 -0
  126. data/spec/dummy/private/system/event_imports/4/original/event_import_file_sample1.tsv +5 -0
  127. data/spec/dummy/private/system/event_imports/4/original/event_import_file_sample2.tsv +3 -0
  128. data/spec/dummy/public/404.html +26 -0
  129. data/spec/dummy/public/422.html +26 -0
  130. data/spec/dummy/public/500.html +26 -0
  131. data/spec/dummy/public/favicon.ico +0 -0
  132. data/spec/dummy/script/rails +6 -0
  133. data/spec/dummy/solr/conf/admin-extra.html +31 -0
  134. data/spec/dummy/solr/conf/elevate.xml +36 -0
  135. data/spec/dummy/solr/conf/mapping-ISOLatin1Accent.txt +246 -0
  136. data/spec/dummy/solr/conf/protwords.txt +21 -0
  137. data/spec/dummy/solr/conf/schema.xml +238 -0
  138. data/spec/dummy/solr/conf/scripts.conf +24 -0
  139. data/spec/dummy/solr/conf/solrconfig.xml +934 -0
  140. data/spec/dummy/solr/conf/spellings.txt +2 -0
  141. data/spec/dummy/solr/conf/stopwords.txt +58 -0
  142. data/spec/dummy/solr/conf/synonyms.txt +31 -0
  143. data/spec/dummy/solr/data/test/index/segments.gen +0 -0
  144. data/spec/dummy/solr/data/test/index/segments_1 +0 -0
  145. data/spec/dummy/solr/data/test/spellchecker/segments.gen +0 -0
  146. data/spec/dummy/solr/data/test/spellchecker/segments_1 +0 -0
  147. data/spec/factories/event.rb +7 -0
  148. data/spec/factories/event_category.rb +5 -0
  149. data/spec/factories/library.rb +13 -0
  150. data/spec/factories/user.rb +34 -0
  151. data/spec/fixtures/event_categories.yml +55 -0
  152. data/spec/fixtures/event_import_files.yml +49 -0
  153. data/spec/fixtures/event_import_results.yml +24 -0
  154. data/spec/fixtures/events.yml +142 -0
  155. data/spec/fixtures/languages.yml +1901 -0
  156. data/spec/fixtures/libraries.yml +108 -0
  157. data/spec/fixtures/library_groups.yml +34 -0
  158. data/spec/fixtures/patron_types.yml +35 -0
  159. data/spec/fixtures/patrons.yml +338 -0
  160. data/spec/fixtures/roles.yml +21 -0
  161. data/spec/fixtures/shelves.yml +46 -0
  162. data/spec/fixtures/user_groups.yml +25 -0
  163. data/spec/fixtures/user_has_roles.yml +41 -0
  164. data/spec/fixtures/users.yml +69 -0
  165. data/spec/models/event_category_spec.rb +21 -0
  166. data/spec/models/event_import_file_spec.rb +62 -0
  167. data/spec/models/event_import_result_spec.rb +20 -0
  168. data/spec/models/event_spec.rb +39 -0
  169. data/spec/spec_helper.rb +45 -0
  170. data/spec/support/controller_macros.rb +48 -0
  171. data/spec/support/devise.rb +4 -0
  172. metadata +541 -0
@@ -0,0 +1,15 @@
1
+ class CreateEventImportResults < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :event_import_results do |t|
4
+ t.integer :event_import_file_id
5
+ t.integer :event_id
6
+ t.text :body
7
+
8
+ t.timestamps
9
+ end
10
+ end
11
+
12
+ def self.down
13
+ drop_table :event_import_results
14
+ end
15
+ end
@@ -0,0 +1,5 @@
1
+ require "enju_event/engine"
2
+ require 'event_calendar'
3
+
4
+ module EnjuEvent
5
+ end
@@ -0,0 +1,18 @@
1
+ require "devise"
2
+ require "cancan"
3
+ require "attribute_normalizer"
4
+ require "inherited_resources"
5
+ require "friendly_id"
6
+ require "will_paginate"
7
+ require "sunspot_rails"
8
+ require "has_scope"
9
+ require "configatron"
10
+ require "paperclip"
11
+ require "state_machine"
12
+ require "addressable/uri"
13
+ require "nkf"
14
+
15
+ module EnjuEvent
16
+ class Engine < Rails::Engine
17
+ end
18
+ end
@@ -0,0 +1,3 @@
1
+ module EnjuEvent
2
+ VERSION = "0.0.3"
3
+ end
@@ -0,0 +1,5 @@
1
+ require 'active_record/fixtures'
2
+ desc "copy fixtures for enju_event"
3
+ task :enju_event => :environment do
4
+ ActiveRecord::Fixtures.create_fixtures(File.expand_path(File.dirname(__FILE__)) + '/../../db/fixtures/', File.basename('event_categories', '.yml'))
5
+ end
@@ -0,0 +1,483 @@
1
+ require 'spec_helper'
2
+ require 'sunspot/rails/spec_helper'
3
+
4
+ describe EventCategoriesController do
5
+ fixtures :all
6
+ disconnect_sunspot
7
+
8
+ describe "GET index" do
9
+ before(:each) do
10
+ FactoryGirl.create(:event_category)
11
+ end
12
+
13
+ describe "When logged in as Administrator" do
14
+ before(:each) do
15
+ sign_in FactoryGirl.create(:admin)
16
+ end
17
+
18
+ it "assigns all event_categories as @event_categories" do
19
+ get :index
20
+ assigns(:event_categories).should eq(EventCategory.all)
21
+ end
22
+ end
23
+
24
+ describe "When logged in as Librarian" do
25
+ before(:each) do
26
+ sign_in FactoryGirl.create(:librarian)
27
+ end
28
+
29
+ it "assigns all event_categories as @event_categories" do
30
+ get :index
31
+ assigns(:event_categories).should eq(EventCategory.all)
32
+ end
33
+ end
34
+
35
+ describe "When logged in as User" do
36
+ before(:each) do
37
+ sign_in FactoryGirl.create(:user)
38
+ end
39
+
40
+ it "assigns all event_categories as @event_categories" do
41
+ get :index
42
+ assigns(:event_categories).should eq(EventCategory.all)
43
+ end
44
+ end
45
+
46
+ describe "When not logged in" do
47
+ it "assigns all event_categories as @event_categories" do
48
+ get :index
49
+ assigns(:event_categories).should eq(EventCategory.all)
50
+ end
51
+ end
52
+ end
53
+
54
+ describe "GET show" do
55
+ describe "When logged in as Administrator" do
56
+ before(:each) do
57
+ sign_in FactoryGirl.create(:admin)
58
+ end
59
+
60
+ it "assigns the requested event_category as @event_category" do
61
+ event_category = FactoryGirl.create(:event_category)
62
+ get :show, :id => event_category.id
63
+ assigns(:event_category).should eq(event_category)
64
+ end
65
+ end
66
+
67
+ describe "When logged in as Librarian" do
68
+ before(:each) do
69
+ sign_in FactoryGirl.create(:librarian)
70
+ end
71
+
72
+ it "assigns the requested event_category as @event_category" do
73
+ event_category = FactoryGirl.create(:event_category)
74
+ get :show, :id => event_category.id
75
+ assigns(:event_category).should eq(event_category)
76
+ end
77
+ end
78
+
79
+ describe "When logged in as User" do
80
+ before(:each) do
81
+ sign_in FactoryGirl.create(:user)
82
+ end
83
+
84
+ it "assigns the requested event_category as @event_category" do
85
+ event_category = FactoryGirl.create(:event_category)
86
+ get :show, :id => event_category.id
87
+ assigns(:event_category).should eq(event_category)
88
+ end
89
+ end
90
+
91
+ describe "When not logged in" do
92
+ it "assigns the requested event_category as @event_category" do
93
+ event_category = FactoryGirl.create(:event_category)
94
+ get :show, :id => event_category.id
95
+ assigns(:event_category).should eq(event_category)
96
+ end
97
+ end
98
+ end
99
+
100
+ describe "GET new" do
101
+ describe "When logged in as Administrator" do
102
+ before(:each) do
103
+ sign_in FactoryGirl.create(:admin)
104
+ end
105
+
106
+ it "assigns the requested event_category as @event_category" do
107
+ get :new
108
+ assigns(:event_category).should_not be_valid
109
+ response.should be_success
110
+ end
111
+ end
112
+
113
+ describe "When logged in as Librarian" do
114
+ before(:each) do
115
+ sign_in FactoryGirl.create(:librarian)
116
+ end
117
+
118
+ it "should not assign the requested event_category as @event_category" do
119
+ get :new
120
+ assigns(:event_category).should_not be_valid
121
+ response.should be_forbidden
122
+ end
123
+ end
124
+
125
+ describe "When logged in as User" do
126
+ before(:each) do
127
+ sign_in FactoryGirl.create(:user)
128
+ end
129
+
130
+ it "should not assign the requested event_category as @event_category" do
131
+ get :new
132
+ assigns(:event_category).should_not be_valid
133
+ response.should be_forbidden
134
+ end
135
+ end
136
+
137
+ describe "When not logged in" do
138
+ it "should not assign the requested event_category as @event_category" do
139
+ get :new
140
+ assigns(:event_category).should_not be_valid
141
+ response.should redirect_to(new_user_session_url)
142
+ end
143
+ end
144
+ end
145
+
146
+ describe "GET edit" do
147
+ describe "When logged in as Administrator" do
148
+ before(:each) do
149
+ sign_in FactoryGirl.create(:admin)
150
+ end
151
+
152
+ it "assigns the requested event_category as @event_category" do
153
+ event_category = FactoryGirl.create(:event_category)
154
+ get :edit, :id => event_category.id
155
+ assigns(:event_category).should eq(event_category)
156
+ end
157
+ end
158
+
159
+ describe "When logged in as Librarian" do
160
+ before(:each) do
161
+ sign_in FactoryGirl.create(:librarian)
162
+ end
163
+
164
+ it "assigns the requested event_category as @event_category" do
165
+ event_category = FactoryGirl.create(:event_category)
166
+ get :edit, :id => event_category.id
167
+ response.should be_forbidden
168
+ end
169
+ end
170
+
171
+ describe "When logged in as User" do
172
+ before(:each) do
173
+ sign_in FactoryGirl.create(:user)
174
+ end
175
+
176
+ it "assigns the requested event_category as @event_category" do
177
+ event_category = FactoryGirl.create(:event_category)
178
+ get :edit, :id => event_category.id
179
+ response.should be_forbidden
180
+ end
181
+ end
182
+
183
+ describe "When not logged in" do
184
+ it "should not assign the requested event_category as @event_category" do
185
+ event_category = FactoryGirl.create(:event_category)
186
+ get :edit, :id => event_category.id
187
+ response.should redirect_to(new_user_session_url)
188
+ end
189
+ end
190
+ end
191
+
192
+ describe "POST create" do
193
+ before(:each) do
194
+ @attrs = FactoryGirl.attributes_for(:event_category)
195
+ @invalid_attrs = {:name => ''}
196
+ end
197
+
198
+ describe "When logged in as Administrator" do
199
+ before(:each) do
200
+ sign_in FactoryGirl.create(:admin)
201
+ end
202
+
203
+ describe "with valid params" do
204
+ it "assigns a newly created event_category as @event_category" do
205
+ post :create, :event_category => @attrs
206
+ assigns(:event_category).should be_valid
207
+ end
208
+
209
+ it "redirects to the created patron" do
210
+ post :create, :event_category => @attrs
211
+ response.should redirect_to(assigns(:event_category))
212
+ end
213
+ end
214
+
215
+ describe "with invalid params" do
216
+ it "assigns a newly created but unsaved event_category as @event_category" do
217
+ post :create, :event_category => @invalid_attrs
218
+ assigns(:event_category).should_not be_valid
219
+ end
220
+
221
+ it "should be successful" do
222
+ post :create, :event_category => @invalid_attrs
223
+ response.should be_success
224
+ end
225
+ end
226
+ end
227
+
228
+ describe "When logged in as Librarian" do
229
+ before(:each) do
230
+ sign_in FactoryGirl.create(:librarian)
231
+ end
232
+
233
+ describe "with valid params" do
234
+ it "assigns a newly created event_category as @event_category" do
235
+ post :create, :event_category => @attrs
236
+ assigns(:event_category).should be_valid
237
+ end
238
+
239
+ it "should be forbidden" do
240
+ post :create, :event_category => @attrs
241
+ response.should be_forbidden
242
+ end
243
+ end
244
+
245
+ describe "with invalid params" do
246
+ it "assigns a newly created but unsaved event_category as @event_category" do
247
+ post :create, :event_category => @invalid_attrs
248
+ assigns(:event_category).should_not be_valid
249
+ end
250
+
251
+ it "should be forbidden" do
252
+ post :create, :event_category => @invalid_attrs
253
+ response.should be_forbidden
254
+ end
255
+ end
256
+ end
257
+
258
+ describe "When logged in as User" do
259
+ before(:each) do
260
+ sign_in FactoryGirl.create(:user)
261
+ end
262
+
263
+ describe "with valid params" do
264
+ it "assigns a newly created event_category as @event_category" do
265
+ post :create, :event_category => @attrs
266
+ assigns(:event_category).should be_valid
267
+ end
268
+
269
+ it "should be forbidden" do
270
+ post :create, :event_category => @attrs
271
+ response.should be_forbidden
272
+ end
273
+ end
274
+
275
+ describe "with invalid params" do
276
+ it "assigns a newly created but unsaved event_category as @event_category" do
277
+ post :create, :event_category => @invalid_attrs
278
+ assigns(:event_category).should_not be_valid
279
+ end
280
+
281
+ it "should be forbidden" do
282
+ post :create, :event_category => @invalid_attrs
283
+ response.should be_forbidden
284
+ end
285
+ end
286
+ end
287
+
288
+ describe "When not logged in" do
289
+ describe "with valid params" do
290
+ it "assigns a newly created event_category as @event_category" do
291
+ post :create, :event_category => @attrs
292
+ assigns(:event_category).should be_valid
293
+ end
294
+
295
+ it "should be forbidden" do
296
+ post :create, :event_category => @attrs
297
+ response.should redirect_to(new_user_session_url)
298
+ end
299
+ end
300
+
301
+ describe "with invalid params" do
302
+ it "assigns a newly created but unsaved event_category as @event_category" do
303
+ post :create, :event_category => @invalid_attrs
304
+ assigns(:event_category).should_not be_valid
305
+ end
306
+
307
+ it "should be forbidden" do
308
+ post :create, :event_category => @invalid_attrs
309
+ response.should redirect_to(new_user_session_url)
310
+ end
311
+ end
312
+ end
313
+ end
314
+
315
+ describe "PUT update" do
316
+ before(:each) do
317
+ @event_category = FactoryGirl.create(:event_category)
318
+ @attrs = FactoryGirl.attributes_for(:event_category)
319
+ @invalid_attrs = {:name => ''}
320
+ end
321
+
322
+ describe "When logged in as Administrator" do
323
+ before(:each) do
324
+ sign_in FactoryGirl.create(:admin)
325
+ end
326
+
327
+ describe "with valid params" do
328
+ it "updates the requested event_category" do
329
+ put :update, :id => @event_category.id, :event_category => @attrs
330
+ end
331
+
332
+ it "assigns the requested event_category as @event_category" do
333
+ put :update, :id => @event_category.id, :event_category => @attrs
334
+ assigns(:event_category).should eq(@event_category)
335
+ end
336
+
337
+ it "moves its position when specified" do
338
+ put :update, :id => @event_category.id, :event_category => @attrs, :position => 2
339
+ response.should redirect_to(event_categories_url)
340
+ end
341
+ end
342
+
343
+ describe "with invalid params" do
344
+ it "assigns the requested event_category as @event_category" do
345
+ put :update, :id => @event_category.id, :event_category => @invalid_attrs
346
+ response.should render_template("edit")
347
+ end
348
+ end
349
+ end
350
+
351
+ describe "When logged in as Librarian" do
352
+ before(:each) do
353
+ sign_in FactoryGirl.create(:librarian)
354
+ end
355
+
356
+ describe "with valid params" do
357
+ it "updates the requested event_category" do
358
+ put :update, :id => @event_category.id, :event_category => @attrs
359
+ end
360
+
361
+ it "assigns the requested event_category as @event_category" do
362
+ put :update, :id => @event_category.id, :event_category => @attrs
363
+ assigns(:event_category).should eq(@event_category)
364
+ response.should be_forbidden
365
+ end
366
+ end
367
+
368
+ describe "with invalid params" do
369
+ it "assigns the requested event_category as @event_category" do
370
+ put :update, :id => @event_category.id, :event_category => @invalid_attrs
371
+ response.should be_forbidden
372
+ end
373
+ end
374
+ end
375
+
376
+ describe "When logged in as User" do
377
+ before(:each) do
378
+ sign_in FactoryGirl.create(:user)
379
+ end
380
+
381
+ describe "with valid params" do
382
+ it "updates the requested event_category" do
383
+ put :update, :id => @event_category.id, :event_category => @attrs
384
+ end
385
+
386
+ it "assigns the requested event_category as @event_category" do
387
+ put :update, :id => @event_category.id, :event_category => @attrs
388
+ assigns(:event_category).should eq(@event_category)
389
+ response.should be_forbidden
390
+ end
391
+ end
392
+
393
+ describe "with invalid params" do
394
+ it "assigns the requested event_category as @event_category" do
395
+ put :update, :id => @event_category.id, :event_category => @invalid_attrs
396
+ response.should be_forbidden
397
+ end
398
+ end
399
+ end
400
+
401
+ describe "When not logged in" do
402
+ describe "with valid params" do
403
+ it "updates the requested event_category" do
404
+ put :update, :id => @event_category.id, :event_category => @attrs
405
+ end
406
+
407
+ it "should be forbidden" do
408
+ put :update, :id => @event_category.id, :event_category => @attrs
409
+ response.should redirect_to(new_user_session_url)
410
+ end
411
+ end
412
+
413
+ describe "with invalid params" do
414
+ it "assigns the requested event_category as @event_category" do
415
+ put :update, :id => @event_category.id, :event_category => @invalid_attrs
416
+ response.should redirect_to(new_user_session_url)
417
+ end
418
+ end
419
+ end
420
+ end
421
+
422
+ describe "DELETE destroy" do
423
+ before(:each) do
424
+ @event_category = FactoryGirl.create(:event_category)
425
+ end
426
+
427
+ describe "When logged in as Administrator" do
428
+ before(:each) do
429
+ sign_in FactoryGirl.create(:admin)
430
+ end
431
+
432
+ it "destroys the requested event_category" do
433
+ delete :destroy, :id => @event_category.id
434
+ end
435
+
436
+ it "redirects to the event_categories list" do
437
+ delete :destroy, :id => @event_category.id
438
+ response.should redirect_to(event_categories_url)
439
+ end
440
+ end
441
+
442
+ describe "When logged in as Librarian" do
443
+ before(:each) do
444
+ sign_in FactoryGirl.create(:librarian)
445
+ end
446
+
447
+ it "destroys the requested event_category" do
448
+ delete :destroy, :id => @event_category.id
449
+ end
450
+
451
+ it "should be forbidden" do
452
+ delete :destroy, :id => @event_category.id
453
+ response.should be_forbidden
454
+ end
455
+ end
456
+
457
+ describe "When logged in as User" do
458
+ before(:each) do
459
+ sign_in FactoryGirl.create(:user)
460
+ end
461
+
462
+ it "destroys the requested event_category" do
463
+ delete :destroy, :id => @event_category.id
464
+ end
465
+
466
+ it "should be forbidden" do
467
+ delete :destroy, :id => @event_category.id
468
+ response.should be_forbidden
469
+ end
470
+ end
471
+
472
+ describe "When not logged in" do
473
+ it "destroys the requested event_category" do
474
+ delete :destroy, :id => @event_category.id
475
+ end
476
+
477
+ it "should be forbidden" do
478
+ delete :destroy, :id => @event_category.id
479
+ response.should redirect_to(new_user_session_url)
480
+ end
481
+ end
482
+ end
483
+ end