enju_event 0.0.3

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 (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