enju_news 0.0.2
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.
- data/MIT-LICENSE +20 -0
- data/README.rdoc +3 -0
- data/Rakefile +47 -0
- data/app/controllers/news_feeds_controller.rb +101 -0
- data/app/controllers/news_posts_controller.rb +98 -0
- data/app/helpers/news_feeds_helper.rb +2 -0
- data/app/helpers/news_posts_helper.rb +2 -0
- data/app/models/news_feed.rb +83 -0
- data/app/models/news_feed_sweeper.rb +12 -0
- data/app/models/news_post.rb +15 -0
- data/app/views/news_feeds/_content.html.erb +9 -0
- data/app/views/news_feeds/_content_atom.html.erb +16 -0
- data/app/views/news_feeds/_content_rss.html.erb +16 -0
- data/app/views/news_feeds/_form.html.erb +14 -0
- data/app/views/news_feeds/_list.html.erb +7 -0
- data/app/views/news_feeds/edit.html.erb +29 -0
- data/app/views/news_feeds/index.html.erb +42 -0
- data/app/views/news_feeds/new.html.erb +28 -0
- data/app/views/news_feeds/show.html.erb +34 -0
- data/app/views/news_posts/_form.html.erb +44 -0
- data/app/views/news_posts/edit.html.erb +13 -0
- data/app/views/news_posts/index.atom.builder +11 -0
- data/app/views/news_posts/index.html.erb +42 -0
- data/app/views/news_posts/index.rss.builder +32 -0
- data/app/views/news_posts/new.html.erb +12 -0
- data/app/views/news_posts/show.html.erb +49 -0
- data/config/locales/translation_en.yml +28 -0
- data/config/locales/translation_ja.yml +28 -0
- data/config/routes.rb +4 -0
- data/db/migrate/20081031033632_create_news_feeds.rb +13 -0
- data/db/migrate/20090126071155_create_news_posts.rb +18 -0
- data/db/migrate/20110220103937_add_url_to_news_post.rb +9 -0
- data/lib/enju_news.rb +6 -0
- data/lib/enju_news/engine.rb +12 -0
- data/lib/enju_news/expire_editable_fragment.rb +15 -0
- data/lib/enju_news/version.rb +3 -0
- data/lib/tasks/enju_news_tasks.rake +4 -0
- data/spec/cassette_library/NewsFeed.yml +1998 -0
- data/spec/controllers/news_feeds_controller_spec.rb +445 -0
- data/spec/controllers/news_posts_controller_spec.rb +443 -0
- data/spec/dummy/Rakefile +7 -0
- data/spec/dummy/app/assets/javascripts/application.js +9 -0
- data/spec/dummy/app/assets/stylesheets/application.css +7 -0
- data/spec/dummy/app/controllers/application_controller.rb +52 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/models/ability.rb +22 -0
- data/spec/dummy/app/models/library_group.rb +86 -0
- data/spec/dummy/app/models/role.rb +46 -0
- data/spec/dummy/app/models/user.rb +94 -0
- data/spec/dummy/app/models/user_group.rb +40 -0
- data/spec/dummy/app/models/user_has_role.rb +5 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/app/views/page/403.html.erb +9 -0
- data/spec/dummy/app/views/page/403.mobile.erb +5 -0
- data/spec/dummy/app/views/page/403.xml.erb +4 -0
- data/spec/dummy/app/views/page/404.html.erb +9 -0
- data/spec/dummy/app/views/page/404.mobile.erb +5 -0
- data/spec/dummy/app/views/page/404.xml.erb +4 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/config/application.rb +47 -0
- data/spec/dummy/config/boot.rb +10 -0
- data/spec/dummy/config/database.yml +25 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +30 -0
- data/spec/dummy/config/environments/production.rb +60 -0
- data/spec/dummy/config/environments/test.rb +39 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/devise.rb +205 -0
- data/spec/dummy/config/initializers/inflections.rb +10 -0
- data/spec/dummy/config/initializers/mime_types.rb +5 -0
- data/spec/dummy/config/initializers/secret_token.rb +7 -0
- data/spec/dummy/config/initializers/session_store.rb +8 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +5 -0
- data/spec/dummy/config/routes.rb +60 -0
- data/spec/dummy/db/migrate/077_create_user_groups.rb +16 -0
- data/spec/dummy/db/migrate/080_create_library_groups.rb +20 -0
- data/spec/dummy/db/migrate/20110222073537_add_url_to_library_group.rb +9 -0
- data/spec/dummy/db/migrate/20110318183304_add_valid_period_for_new_user_to_user_group.rb +13 -0
- data/spec/dummy/db/migrate/20111201121844_create_roles.rb +12 -0
- data/spec/dummy/db/migrate/20111201155456_create_users.rb +16 -0
- data/spec/dummy/db/migrate/20111201155513_add_devise_to_users.rb +44 -0
- data/spec/dummy/db/migrate/20111201163718_create_user_has_roles.rb +10 -0
- data/spec/dummy/db/schema.rb +116 -0
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/lib/master_model.rb +19 -0
- data/spec/dummy/lib/url_validator.rb +10 -0
- data/spec/dummy/public/404.html +26 -0
- data/spec/dummy/public/422.html +26 -0
- data/spec/dummy/public/500.html +26 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/script/rails +6 -0
- data/spec/factories/news_feed.rb +6 -0
- data/spec/factories/news_post.rb +7 -0
- data/spec/factories/user.rb +37 -0
- data/spec/fixtures/library_groups.yml +33 -0
- data/spec/fixtures/news_feeds.yml +11 -0
- data/spec/fixtures/news_posts.yml +13 -0
- data/spec/fixtures/roles.yml +21 -0
- data/spec/fixtures/user_has_roles.yml +41 -0
- data/spec/fixtures/users.yml +93 -0
- data/spec/models/news_feed_spec.rb +31 -0
- data/spec/models/news_post_spec.rb +5 -0
- data/spec/spec_helper.rb +42 -0
- data/spec/support/controller_macros.rb +46 -0
- data/spec/support/devise.rb +4 -0
- data/spec/support/vcr.rb +9 -0
- metadata +430 -0
@@ -0,0 +1,445 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe NewsFeedsController do
|
4
|
+
fixtures :all
|
5
|
+
|
6
|
+
def valid_attributes
|
7
|
+
FactoryGirl.attributes_for(:news_feed)
|
8
|
+
end
|
9
|
+
|
10
|
+
describe "GET index" do
|
11
|
+
before(:each) do
|
12
|
+
FactoryGirl.create(:news_feed)
|
13
|
+
end
|
14
|
+
|
15
|
+
describe "When logged in as Administrator" do
|
16
|
+
login_admin
|
17
|
+
|
18
|
+
it "assigns all news_feeds as @news_feeds" do
|
19
|
+
get :index
|
20
|
+
assigns(:news_feeds).should eq(NewsFeed.page(1))
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe "When logged in as Librarian" do
|
25
|
+
login_librarian
|
26
|
+
|
27
|
+
it "assigns all news_feeds as @news_feeds" do
|
28
|
+
get :index
|
29
|
+
assigns(:news_feeds).should eq(NewsFeed.page(1))
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
describe "When logged in as User" do
|
34
|
+
login_user
|
35
|
+
|
36
|
+
it "assigns all news_feeds as @news_feeds" do
|
37
|
+
get :index
|
38
|
+
assigns(:news_feeds).should be_empty
|
39
|
+
response.should be_forbidden
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
describe "When not logged in" do
|
44
|
+
it "assigns all news_feeds as @news_feeds" do
|
45
|
+
get :index
|
46
|
+
assigns(:news_feeds).should be_empty
|
47
|
+
response.should redirect_to(new_user_session_url)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
describe "GET show" do
|
53
|
+
before(:each) do
|
54
|
+
@news_feed = FactoryGirl.create(:news_feed)
|
55
|
+
end
|
56
|
+
|
57
|
+
describe "When logged in as Administrator" do
|
58
|
+
login_admin
|
59
|
+
|
60
|
+
it "assigns the requested news_feed as @news_feed" do
|
61
|
+
get :show, :id => @news_feed.id
|
62
|
+
assigns(:news_feed).should eq(@news_feed)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
describe "When logged in as Librarian" do
|
67
|
+
login_librarian
|
68
|
+
|
69
|
+
it "assigns the requested news_feed as @news_feed" do
|
70
|
+
get :show, :id => @news_feed.id
|
71
|
+
assigns(:news_feed).should eq(@news_feed)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
describe "When logged in as User" do
|
76
|
+
login_user
|
77
|
+
|
78
|
+
it "assigns the requested news_feed as @news_feed" do
|
79
|
+
get :show, :id => @news_feed.id
|
80
|
+
assigns(:news_feed).should eq(@news_feed)
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
describe "When not logged in" do
|
85
|
+
it "assigns the requested news_feed as @news_feed" do
|
86
|
+
get :show, :id => @news_feed.id
|
87
|
+
assigns(:news_feed).should eq(@news_feed)
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
describe "GET new" do
|
93
|
+
describe "When logged in as Administrator" do
|
94
|
+
login_admin
|
95
|
+
|
96
|
+
it "assigns the requested news_feed as @news_feed" do
|
97
|
+
get :new
|
98
|
+
assigns(:news_feed).should_not be_valid
|
99
|
+
response.should be_success
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
describe "When logged in as Librarian" do
|
104
|
+
login_librarian
|
105
|
+
|
106
|
+
it "should not assign the requested news_feed as @news_feed" do
|
107
|
+
get :new
|
108
|
+
assigns(:news_feed).should_not be_valid
|
109
|
+
response.should be_forbidden
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
describe "When logged in as User" do
|
114
|
+
login_user
|
115
|
+
|
116
|
+
it "should not assign the requested news_feed as @news_feed" do
|
117
|
+
get :new
|
118
|
+
assigns(:news_feed).should_not be_valid
|
119
|
+
response.should be_forbidden
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
describe "When not logged in" do
|
124
|
+
it "should not assign the requested news_feed as @news_feed" do
|
125
|
+
get :new
|
126
|
+
assigns(:news_feed).should_not be_valid
|
127
|
+
response.should redirect_to(new_user_session_url)
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
describe "GET edit" do
|
133
|
+
before(:each) do
|
134
|
+
@news_feed = FactoryGirl.create(:news_feed)
|
135
|
+
end
|
136
|
+
|
137
|
+
describe "When logged in as Administrator" do
|
138
|
+
login_admin
|
139
|
+
|
140
|
+
it "assigns the requested news_feed as @news_feed" do
|
141
|
+
get :edit, :id => @news_feed.id
|
142
|
+
assigns(:news_feed).should eq(@news_feed)
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
describe "When logged in as Librarian" do
|
147
|
+
login_librarian
|
148
|
+
|
149
|
+
it "assigns the requested news_feed as @news_feed" do
|
150
|
+
get :edit, :id => @news_feed.id
|
151
|
+
response.should be_forbidden
|
152
|
+
end
|
153
|
+
end
|
154
|
+
|
155
|
+
describe "When logged in as User" do
|
156
|
+
login_user
|
157
|
+
|
158
|
+
it "assigns the requested news_feed as @news_feed" do
|
159
|
+
get :edit, :id => @news_feed.id
|
160
|
+
response.should be_forbidden
|
161
|
+
end
|
162
|
+
end
|
163
|
+
|
164
|
+
describe "When not logged in" do
|
165
|
+
it "should not assign the requested news_feed as @news_feed" do
|
166
|
+
get :edit, :id => @news_feed.id
|
167
|
+
response.should redirect_to(new_user_session_url)
|
168
|
+
end
|
169
|
+
end
|
170
|
+
end
|
171
|
+
|
172
|
+
describe "POST create" do
|
173
|
+
before(:each) do
|
174
|
+
@attrs = valid_attributes
|
175
|
+
@invalid_attrs = {:title => ''}
|
176
|
+
end
|
177
|
+
|
178
|
+
describe "When logged in as Administrator" do
|
179
|
+
login_admin
|
180
|
+
|
181
|
+
describe "with valid params" do
|
182
|
+
it "assigns a newly created news_feed as @news_feed" do
|
183
|
+
post :create, :news_feed => @attrs
|
184
|
+
assigns(:news_feed).should be_valid
|
185
|
+
end
|
186
|
+
|
187
|
+
it "redirects to the created news_feed" do
|
188
|
+
post :create, :news_feed => @attrs
|
189
|
+
response.should redirect_to(assigns(:news_feed))
|
190
|
+
end
|
191
|
+
end
|
192
|
+
|
193
|
+
describe "with invalid params" do
|
194
|
+
it "assigns a newly created but unsaved news_feed as @news_feed" do
|
195
|
+
post :create, :news_feed => @invalid_attrs
|
196
|
+
assigns(:news_feed).should_not be_valid
|
197
|
+
end
|
198
|
+
|
199
|
+
it "should be successful" do
|
200
|
+
post :create, :news_feed => @invalid_attrs
|
201
|
+
response.should be_success
|
202
|
+
end
|
203
|
+
end
|
204
|
+
end
|
205
|
+
|
206
|
+
describe "When logged in as Librarian" do
|
207
|
+
login_librarian
|
208
|
+
|
209
|
+
describe "with valid params" do
|
210
|
+
it "assigns a newly created news_feed as @news_feed" do
|
211
|
+
post :create, :news_feed => @attrs
|
212
|
+
assigns(:news_feed).should be_valid
|
213
|
+
end
|
214
|
+
|
215
|
+
it "should be forbidden" do
|
216
|
+
post :create, :news_feed => @attrs
|
217
|
+
response.should be_forbidden
|
218
|
+
end
|
219
|
+
end
|
220
|
+
|
221
|
+
describe "with invalid params" do
|
222
|
+
it "assigns a newly created but unsaved news_feed as @news_feed" do
|
223
|
+
post :create, :news_feed => @invalid_attrs
|
224
|
+
assigns(:news_feed).should_not be_valid
|
225
|
+
end
|
226
|
+
|
227
|
+
it "should be forbidden" do
|
228
|
+
post :create, :news_feed => @invalid_attrs
|
229
|
+
response.should be_forbidden
|
230
|
+
end
|
231
|
+
end
|
232
|
+
end
|
233
|
+
|
234
|
+
describe "When logged in as User" do
|
235
|
+
login_user
|
236
|
+
|
237
|
+
describe "with valid params" do
|
238
|
+
it "assigns a newly created news_feed as @news_feed" do
|
239
|
+
post :create, :news_feed => @attrs
|
240
|
+
assigns(:news_feed).should be_valid
|
241
|
+
end
|
242
|
+
|
243
|
+
it "should be forbidden" do
|
244
|
+
post :create, :news_feed => @attrs
|
245
|
+
response.should be_forbidden
|
246
|
+
end
|
247
|
+
end
|
248
|
+
|
249
|
+
describe "with invalid params" do
|
250
|
+
it "assigns a newly created but unsaved news_feed as @news_feed" do
|
251
|
+
post :create, :news_feed => @invalid_attrs
|
252
|
+
assigns(:news_feed).should_not be_valid
|
253
|
+
end
|
254
|
+
|
255
|
+
it "should be forbidden" do
|
256
|
+
post :create, :news_feed => @invalid_attrs
|
257
|
+
response.should be_forbidden
|
258
|
+
end
|
259
|
+
end
|
260
|
+
end
|
261
|
+
|
262
|
+
describe "When not logged in" do
|
263
|
+
describe "with valid params" do
|
264
|
+
it "assigns a newly created news_feed as @news_feed" do
|
265
|
+
post :create, :news_feed => @attrs
|
266
|
+
assigns(:news_feed).should be_valid
|
267
|
+
end
|
268
|
+
|
269
|
+
it "should be forbidden" do
|
270
|
+
post :create, :news_feed => @attrs
|
271
|
+
response.should redirect_to(new_user_session_url)
|
272
|
+
end
|
273
|
+
end
|
274
|
+
|
275
|
+
describe "with invalid params" do
|
276
|
+
it "assigns a newly created but unsaved news_feed as @news_feed" do
|
277
|
+
post :create, :news_feed => @invalid_attrs
|
278
|
+
assigns(:news_feed).should_not be_valid
|
279
|
+
end
|
280
|
+
|
281
|
+
it "should be forbidden" do
|
282
|
+
post :create, :news_feed => @invalid_attrs
|
283
|
+
response.should redirect_to(new_user_session_url)
|
284
|
+
end
|
285
|
+
end
|
286
|
+
end
|
287
|
+
end
|
288
|
+
|
289
|
+
describe "PUT update" do
|
290
|
+
before(:each) do
|
291
|
+
@news_feed = FactoryGirl.create(:news_feed)
|
292
|
+
@attrs = valid_attributes
|
293
|
+
@invalid_attrs = {:title => ''}
|
294
|
+
end
|
295
|
+
|
296
|
+
describe "When logged in as Administrator" do
|
297
|
+
login_admin
|
298
|
+
|
299
|
+
describe "with valid params" do
|
300
|
+
it "updates the requested news_feed" do
|
301
|
+
put :update, :id => @news_feed.id, :news_feed => @attrs
|
302
|
+
end
|
303
|
+
|
304
|
+
it "assigns the requested news_feed as @news_feed" do
|
305
|
+
put :update, :id => @news_feed.id, :news_feed => @attrs
|
306
|
+
assigns(:news_feed).should eq(@news_feed)
|
307
|
+
end
|
308
|
+
|
309
|
+
it "moves its position when specified" do
|
310
|
+
put :update, :id => @news_feed.id, :news_feed => @attrs, :move => 'lower'
|
311
|
+
response.should redirect_to(news_feeds_url)
|
312
|
+
end
|
313
|
+
end
|
314
|
+
|
315
|
+
describe "with invalid params" do
|
316
|
+
it "assigns the requested news_feed as @news_feed" do
|
317
|
+
put :update, :id => @news_feed.id, :news_feed => @invalid_attrs
|
318
|
+
response.should render_template("edit")
|
319
|
+
end
|
320
|
+
end
|
321
|
+
end
|
322
|
+
|
323
|
+
describe "When logged in as Librarian" do
|
324
|
+
login_librarian
|
325
|
+
|
326
|
+
describe "with valid params" do
|
327
|
+
it "updates the requested news_feed" do
|
328
|
+
put :update, :id => @news_feed.id, :news_feed => @attrs
|
329
|
+
end
|
330
|
+
|
331
|
+
it "assigns the requested news_feed as @news_feed" do
|
332
|
+
put :update, :id => @news_feed.id, :news_feed => @attrs
|
333
|
+
assigns(:news_feed).should eq(@news_feed)
|
334
|
+
response.should be_forbidden
|
335
|
+
end
|
336
|
+
end
|
337
|
+
|
338
|
+
describe "with invalid params" do
|
339
|
+
it "assigns the requested news_feed as @news_feed" do
|
340
|
+
put :update, :id => @news_feed.id, :news_feed => @invalid_attrs
|
341
|
+
response.should be_forbidden
|
342
|
+
end
|
343
|
+
end
|
344
|
+
end
|
345
|
+
|
346
|
+
describe "When logged in as User" do
|
347
|
+
login_user
|
348
|
+
|
349
|
+
describe "with valid params" do
|
350
|
+
it "updates the requested news_feed" do
|
351
|
+
put :update, :id => @news_feed.id, :news_feed => @attrs
|
352
|
+
end
|
353
|
+
|
354
|
+
it "assigns the requested news_feed as @news_feed" do
|
355
|
+
put :update, :id => @news_feed.id, :news_feed => @attrs
|
356
|
+
assigns(:news_feed).should eq(@news_feed)
|
357
|
+
response.should be_forbidden
|
358
|
+
end
|
359
|
+
end
|
360
|
+
|
361
|
+
describe "with invalid params" do
|
362
|
+
it "assigns the requested news_feed as @news_feed" do
|
363
|
+
put :update, :id => @news_feed.id, :news_feed => @invalid_attrs
|
364
|
+
response.should be_forbidden
|
365
|
+
end
|
366
|
+
end
|
367
|
+
end
|
368
|
+
|
369
|
+
describe "When not logged in" do
|
370
|
+
describe "with valid params" do
|
371
|
+
it "updates the requested news_feed" do
|
372
|
+
put :update, :id => @news_feed.id, :news_feed => @attrs
|
373
|
+
end
|
374
|
+
|
375
|
+
it "should be forbidden" do
|
376
|
+
put :update, :id => @news_feed.id, :news_feed => @attrs
|
377
|
+
response.should redirect_to(new_user_session_url)
|
378
|
+
end
|
379
|
+
end
|
380
|
+
|
381
|
+
describe "with invalid params" do
|
382
|
+
it "assigns the requested news_feed as @news_feed" do
|
383
|
+
put :update, :id => @news_feed.id, :news_feed => @invalid_attrs
|
384
|
+
response.should redirect_to(new_user_session_url)
|
385
|
+
end
|
386
|
+
end
|
387
|
+
end
|
388
|
+
end
|
389
|
+
|
390
|
+
describe "DELETE destroy" do
|
391
|
+
before(:each) do
|
392
|
+
@news_feed = FactoryGirl.create(:news_feed)
|
393
|
+
end
|
394
|
+
|
395
|
+
describe "When logged in as Administrator" do
|
396
|
+
login_admin
|
397
|
+
|
398
|
+
it "destroys the requested news_feed" do
|
399
|
+
delete :destroy, :id => @news_feed.id
|
400
|
+
end
|
401
|
+
|
402
|
+
it "redirects to the news_feeds list" do
|
403
|
+
delete :destroy, :id => @news_feed.id
|
404
|
+
response.should redirect_to(news_feeds_url)
|
405
|
+
end
|
406
|
+
end
|
407
|
+
|
408
|
+
describe "When logged in as Librarian" do
|
409
|
+
login_librarian
|
410
|
+
|
411
|
+
it "destroys the requested news_feed" do
|
412
|
+
delete :destroy, :id => @news_feed.id
|
413
|
+
end
|
414
|
+
|
415
|
+
it "should be forbidden" do
|
416
|
+
delete :destroy, :id => @news_feed.id
|
417
|
+
response.should be_forbidden
|
418
|
+
end
|
419
|
+
end
|
420
|
+
|
421
|
+
describe "When logged in as User" do
|
422
|
+
login_user
|
423
|
+
|
424
|
+
it "destroys the requested news_feed" do
|
425
|
+
delete :destroy, :id => @news_feed.id
|
426
|
+
end
|
427
|
+
|
428
|
+
it "should be forbidden" do
|
429
|
+
delete :destroy, :id => @news_feed.id
|
430
|
+
response.should be_forbidden
|
431
|
+
end
|
432
|
+
end
|
433
|
+
|
434
|
+
describe "When not logged in" do
|
435
|
+
it "destroys the requested news_feed" do
|
436
|
+
delete :destroy, :id => @news_feed.id
|
437
|
+
end
|
438
|
+
|
439
|
+
it "should be forbidden" do
|
440
|
+
delete :destroy, :id => @news_feed.id
|
441
|
+
response.should redirect_to(new_user_session_url)
|
442
|
+
end
|
443
|
+
end
|
444
|
+
end
|
445
|
+
end
|
@@ -0,0 +1,443 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe NewsPostsController do
|
4
|
+
fixtures :all
|
5
|
+
|
6
|
+
def valid_attributes
|
7
|
+
FactoryGirl.attributes_for(:news_post)
|
8
|
+
end
|
9
|
+
|
10
|
+
describe "GET index" do
|
11
|
+
before(:each) do
|
12
|
+
FactoryGirl.create(:news_post)
|
13
|
+
end
|
14
|
+
|
15
|
+
describe "When logged in as Administrator" do
|
16
|
+
login_admin
|
17
|
+
|
18
|
+
it "assigns all news_posts as @news_posts" do
|
19
|
+
get :index
|
20
|
+
assigns(:news_posts).should eq(NewsPost.page(1))
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe "When logged in as Librarian" do
|
25
|
+
login_librarian
|
26
|
+
|
27
|
+
it "assigns all news_posts as @news_posts" do
|
28
|
+
get :index
|
29
|
+
assigns(:news_posts).should eq(NewsPost.page(1))
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
describe "When logged in as User" do
|
34
|
+
login_user
|
35
|
+
|
36
|
+
it "assigns all news_posts as @news_posts" do
|
37
|
+
get :index
|
38
|
+
assigns(:news_posts).should eq(NewsPost.published.page(1))
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
describe "When not logged in" do
|
43
|
+
it "assigns all news_posts as @news_posts" do
|
44
|
+
get :index
|
45
|
+
assigns(:news_posts).should eq(NewsPost.published.page(1))
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
describe "GET show" do
|
51
|
+
before(:each) do
|
52
|
+
@news_post = FactoryGirl.create(:news_post)
|
53
|
+
end
|
54
|
+
|
55
|
+
describe "When logged in as Administrator" do
|
56
|
+
login_admin
|
57
|
+
|
58
|
+
it "assigns the requested news_post as @news_post" do
|
59
|
+
get :show, :id => @news_post.id
|
60
|
+
assigns(:news_post).should eq(@news_post)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
describe "When logged in as Librarian" do
|
65
|
+
login_librarian
|
66
|
+
|
67
|
+
it "assigns the requested news_post as @news_post" do
|
68
|
+
get :show, :id => @news_post.id
|
69
|
+
assigns(:news_post).should eq(@news_post)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
describe "When logged in as User" do
|
74
|
+
login_user
|
75
|
+
|
76
|
+
it "assigns the requested news_post as @news_post" do
|
77
|
+
get :show, :id => @news_post.id
|
78
|
+
assigns(:news_post).should eq(@news_post)
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
describe "When not logged in" do
|
83
|
+
it "assigns the requested news_post as @news_post" do
|
84
|
+
get :show, :id => @news_post.id
|
85
|
+
assigns(:news_post).should eq(@news_post)
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
describe "GET new" do
|
91
|
+
describe "When logged in as Administrator" do
|
92
|
+
login_admin
|
93
|
+
|
94
|
+
it "assigns the requested news_post as @news_post" do
|
95
|
+
get :new
|
96
|
+
assigns(:news_post).should_not be_valid
|
97
|
+
response.should be_success
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
describe "When logged in as Librarian" do
|
102
|
+
login_librarian
|
103
|
+
|
104
|
+
it "should not assign the requested news_post as @news_post" do
|
105
|
+
get :new
|
106
|
+
assigns(:news_post).should_not be_valid
|
107
|
+
response.should be_forbidden
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
describe "When logged in as User" do
|
112
|
+
login_user
|
113
|
+
|
114
|
+
it "should not assign the requested news_post as @news_post" do
|
115
|
+
get :new
|
116
|
+
assigns(:news_post).should_not be_valid
|
117
|
+
response.should be_forbidden
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
describe "When not logged in" do
|
122
|
+
it "should not assign the requested news_post as @news_post" do
|
123
|
+
get :new
|
124
|
+
assigns(:news_post).should_not be_valid
|
125
|
+
response.should redirect_to(new_user_session_url)
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
describe "GET edit" do
|
131
|
+
before(:each) do
|
132
|
+
@news_post = FactoryGirl.create(:news_post)
|
133
|
+
end
|
134
|
+
|
135
|
+
describe "When logged in as Administrator" do
|
136
|
+
login_admin
|
137
|
+
|
138
|
+
it "assigns the requested news_post as @news_post" do
|
139
|
+
get :edit, :id => @news_post.id
|
140
|
+
assigns(:news_post).should eq(@news_post)
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
describe "When logged in as Librarian" do
|
145
|
+
login_librarian
|
146
|
+
|
147
|
+
it "assigns the requested news_post as @news_post" do
|
148
|
+
get :edit, :id => @news_post.id
|
149
|
+
response.should be_forbidden
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
153
|
+
describe "When logged in as User" do
|
154
|
+
login_user
|
155
|
+
|
156
|
+
it "assigns the requested news_post as @news_post" do
|
157
|
+
get :edit, :id => @news_post.id
|
158
|
+
response.should be_forbidden
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
162
|
+
describe "When not logged in" do
|
163
|
+
it "should not assign the requested news_post as @news_post" do
|
164
|
+
get :edit, :id => @news_post.id
|
165
|
+
response.should redirect_to(new_user_session_url)
|
166
|
+
end
|
167
|
+
end
|
168
|
+
end
|
169
|
+
|
170
|
+
describe "POST create" do
|
171
|
+
before(:each) do
|
172
|
+
@attrs = valid_attributes
|
173
|
+
@invalid_attrs = {:body => ''}
|
174
|
+
end
|
175
|
+
|
176
|
+
describe "When logged in as Administrator" do
|
177
|
+
login_admin
|
178
|
+
|
179
|
+
describe "with valid params" do
|
180
|
+
it "assigns a newly created news_post as @news_post" do
|
181
|
+
post :create, :news_post => @attrs
|
182
|
+
assigns(:news_post).should be_valid
|
183
|
+
end
|
184
|
+
|
185
|
+
it "redirects to the created news_post" do
|
186
|
+
post :create, :news_post => @attrs
|
187
|
+
response.should redirect_to(assigns(:news_post))
|
188
|
+
end
|
189
|
+
end
|
190
|
+
|
191
|
+
describe "with invalid params" do
|
192
|
+
it "assigns a newly created but unsaved news_post as @news_post" do
|
193
|
+
post :create, :news_post => @invalid_attrs
|
194
|
+
assigns(:news_post).should_not be_valid
|
195
|
+
end
|
196
|
+
|
197
|
+
it "should be successful" do
|
198
|
+
post :create, :news_post => @invalid_attrs
|
199
|
+
response.should be_success
|
200
|
+
end
|
201
|
+
end
|
202
|
+
end
|
203
|
+
|
204
|
+
describe "When logged in as Librarian" do
|
205
|
+
login_librarian
|
206
|
+
|
207
|
+
describe "with valid params" do
|
208
|
+
it "assigns a newly created news_post as @news_post" do
|
209
|
+
post :create, :news_post => @attrs
|
210
|
+
assigns(:news_post).should_not be_valid
|
211
|
+
end
|
212
|
+
|
213
|
+
it "should be forbidden" do
|
214
|
+
post :create, :news_post => @attrs
|
215
|
+
response.should be_forbidden
|
216
|
+
end
|
217
|
+
end
|
218
|
+
|
219
|
+
describe "with invalid params" do
|
220
|
+
it "assigns a newly created but unsaved news_post as @news_post" do
|
221
|
+
post :create, :news_post => @invalid_attrs
|
222
|
+
assigns(:news_post).should_not be_valid
|
223
|
+
end
|
224
|
+
|
225
|
+
it "should be forbidden" do
|
226
|
+
post :create, :news_post => @invalid_attrs
|
227
|
+
response.should be_forbidden
|
228
|
+
end
|
229
|
+
end
|
230
|
+
end
|
231
|
+
|
232
|
+
describe "When logged in as User" do
|
233
|
+
login_user
|
234
|
+
|
235
|
+
describe "with valid params" do
|
236
|
+
it "assigns a newly created news_post as @news_post" do
|
237
|
+
post :create, :news_post => @attrs
|
238
|
+
assigns(:news_post).should_not be_valid
|
239
|
+
end
|
240
|
+
|
241
|
+
it "should be forbidden" do
|
242
|
+
post :create, :news_post => @attrs
|
243
|
+
response.should be_forbidden
|
244
|
+
end
|
245
|
+
end
|
246
|
+
|
247
|
+
describe "with invalid params" do
|
248
|
+
it "assigns a newly created but unsaved news_post as @news_post" do
|
249
|
+
post :create, :news_post => @invalid_attrs
|
250
|
+
assigns(:news_post).should_not be_valid
|
251
|
+
end
|
252
|
+
|
253
|
+
it "should be forbidden" do
|
254
|
+
post :create, :news_post => @invalid_attrs
|
255
|
+
response.should be_forbidden
|
256
|
+
end
|
257
|
+
end
|
258
|
+
end
|
259
|
+
|
260
|
+
describe "When not logged in" do
|
261
|
+
describe "with valid params" do
|
262
|
+
it "assigns a newly created news_post as @news_post" do
|
263
|
+
post :create, :news_post => @attrs
|
264
|
+
assigns(:news_post).should_not be_valid
|
265
|
+
end
|
266
|
+
|
267
|
+
it "should be forbidden" do
|
268
|
+
post :create, :news_post => @attrs
|
269
|
+
response.should redirect_to(new_user_session_url)
|
270
|
+
end
|
271
|
+
end
|
272
|
+
|
273
|
+
describe "with invalid params" do
|
274
|
+
it "assigns a newly created but unsaved news_post as @news_post" do
|
275
|
+
post :create, :news_post => @invalid_attrs
|
276
|
+
assigns(:news_post).should_not be_valid
|
277
|
+
end
|
278
|
+
|
279
|
+
it "should be forbidden" do
|
280
|
+
post :create, :news_post => @invalid_attrs
|
281
|
+
response.should redirect_to(new_user_session_url)
|
282
|
+
end
|
283
|
+
end
|
284
|
+
end
|
285
|
+
end
|
286
|
+
|
287
|
+
describe "PUT update" do
|
288
|
+
before(:each) do
|
289
|
+
@news_post = FactoryGirl.create(:news_post)
|
290
|
+
@attrs = valid_attributes
|
291
|
+
@invalid_attrs = {:body => ''}
|
292
|
+
end
|
293
|
+
|
294
|
+
describe "When logged in as Administrator" do
|
295
|
+
login_admin
|
296
|
+
|
297
|
+
describe "with valid params" do
|
298
|
+
it "updates the requested news_post" do
|
299
|
+
put :update, :id => @news_post.id, :news_post => @attrs
|
300
|
+
end
|
301
|
+
|
302
|
+
it "assigns the requested news_post as @news_post" do
|
303
|
+
put :update, :id => @news_post.id, :news_post => @attrs
|
304
|
+
assigns(:news_post).should eq(@news_post)
|
305
|
+
end
|
306
|
+
|
307
|
+
it "moves its position when specified" do
|
308
|
+
put :update, :id => @news_post.id, :news_post => @attrs, :move => 'lower'
|
309
|
+
response.should redirect_to(news_posts_url)
|
310
|
+
end
|
311
|
+
end
|
312
|
+
|
313
|
+
describe "with invalid params" do
|
314
|
+
it "assigns the requested news_post as @news_post" do
|
315
|
+
put :update, :id => @news_post.id, :news_post => @invalid_attrs
|
316
|
+
response.should render_template("edit")
|
317
|
+
end
|
318
|
+
end
|
319
|
+
end
|
320
|
+
|
321
|
+
describe "When logged in as Librarian" do
|
322
|
+
login_librarian
|
323
|
+
|
324
|
+
describe "with valid params" do
|
325
|
+
it "updates the requested news_post" do
|
326
|
+
put :update, :id => @news_post.id, :news_post => @attrs
|
327
|
+
end
|
328
|
+
|
329
|
+
it "assigns the requested news_post as @news_post" do
|
330
|
+
put :update, :id => @news_post.id, :news_post => @attrs
|
331
|
+
assigns(:news_post).should eq(@news_post)
|
332
|
+
response.should be_forbidden
|
333
|
+
end
|
334
|
+
end
|
335
|
+
|
336
|
+
describe "with invalid params" do
|
337
|
+
it "assigns the requested news_post as @news_post" do
|
338
|
+
put :update, :id => @news_post.id, :news_post => @invalid_attrs
|
339
|
+
response.should be_forbidden
|
340
|
+
end
|
341
|
+
end
|
342
|
+
end
|
343
|
+
|
344
|
+
describe "When logged in as User" do
|
345
|
+
login_user
|
346
|
+
|
347
|
+
describe "with valid params" do
|
348
|
+
it "updates the requested news_post" do
|
349
|
+
put :update, :id => @news_post.id, :news_post => @attrs
|
350
|
+
end
|
351
|
+
|
352
|
+
it "assigns the requested news_post as @news_post" do
|
353
|
+
put :update, :id => @news_post.id, :news_post => @attrs
|
354
|
+
assigns(:news_post).should eq(@news_post)
|
355
|
+
response.should be_forbidden
|
356
|
+
end
|
357
|
+
end
|
358
|
+
|
359
|
+
describe "with invalid params" do
|
360
|
+
it "assigns the requested news_post as @news_post" do
|
361
|
+
put :update, :id => @news_post.id, :news_post => @invalid_attrs
|
362
|
+
response.should be_forbidden
|
363
|
+
end
|
364
|
+
end
|
365
|
+
end
|
366
|
+
|
367
|
+
describe "When not logged in" do
|
368
|
+
describe "with valid params" do
|
369
|
+
it "updates the requested news_post" do
|
370
|
+
put :update, :id => @news_post.id, :news_post => @attrs
|
371
|
+
end
|
372
|
+
|
373
|
+
it "should be forbidden" do
|
374
|
+
put :update, :id => @news_post.id, :news_post => @attrs
|
375
|
+
response.should redirect_to(new_user_session_url)
|
376
|
+
end
|
377
|
+
end
|
378
|
+
|
379
|
+
describe "with invalid params" do
|
380
|
+
it "assigns the requested news_post as @news_post" do
|
381
|
+
put :update, :id => @news_post.id, :news_post => @invalid_attrs
|
382
|
+
response.should redirect_to(new_user_session_url)
|
383
|
+
end
|
384
|
+
end
|
385
|
+
end
|
386
|
+
end
|
387
|
+
|
388
|
+
describe "DELETE destroy" do
|
389
|
+
before(:each) do
|
390
|
+
@news_post = FactoryGirl.create(:news_post)
|
391
|
+
end
|
392
|
+
|
393
|
+
describe "When logged in as Administrator" do
|
394
|
+
login_admin
|
395
|
+
|
396
|
+
it "destroys the requested news_post" do
|
397
|
+
delete :destroy, :id => @news_post.id
|
398
|
+
end
|
399
|
+
|
400
|
+
it "redirects to the news_posts list" do
|
401
|
+
delete :destroy, :id => @news_post.id
|
402
|
+
response.should redirect_to(news_posts_url)
|
403
|
+
end
|
404
|
+
end
|
405
|
+
|
406
|
+
describe "When logged in as Librarian" do
|
407
|
+
login_librarian
|
408
|
+
|
409
|
+
it "destroys the requested news_post" do
|
410
|
+
delete :destroy, :id => @news_post.id
|
411
|
+
end
|
412
|
+
|
413
|
+
it "should be forbidden" do
|
414
|
+
delete :destroy, :id => @news_post.id
|
415
|
+
response.should be_forbidden
|
416
|
+
end
|
417
|
+
end
|
418
|
+
|
419
|
+
describe "When logged in as User" do
|
420
|
+
login_user
|
421
|
+
|
422
|
+
it "destroys the requested news_post" do
|
423
|
+
delete :destroy, :id => @news_post.id
|
424
|
+
end
|
425
|
+
|
426
|
+
it "should be forbidden" do
|
427
|
+
delete :destroy, :id => @news_post.id
|
428
|
+
response.should be_forbidden
|
429
|
+
end
|
430
|
+
end
|
431
|
+
|
432
|
+
describe "When not logged in" do
|
433
|
+
it "destroys the requested news_post" do
|
434
|
+
delete :destroy, :id => @news_post.id
|
435
|
+
end
|
436
|
+
|
437
|
+
it "should be forbidden" do
|
438
|
+
delete :destroy, :id => @news_post.id
|
439
|
+
response.should redirect_to(new_user_session_url)
|
440
|
+
end
|
441
|
+
end
|
442
|
+
end
|
443
|
+
end
|