commontator 2.0.2 → 4.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/MIT-LICENSE +1 -1
- data/README.md +20 -2
- data/app/controllers/commontator/comments_controller.rb +19 -11
- data/app/controllers/commontator/subscriptions_controller.rb +5 -5
- data/app/controllers/commontator/threads_controller.rb +3 -3
- data/app/mailers/commontator/subscriptions_mailer.rb +3 -2
- data/app/models/commontator/comment.rb +0 -6
- data/app/models/commontator/subscription.rb +0 -4
- data/app/models/commontator/thread.rb +4 -7
- data/app/views/commontator/comments/_actions.html.erb +1 -1
- data/app/views/commontator/comments/_votes.html.erb +4 -4
- data/app/views/commontator/shared/_thread.html.erb +1 -1
- data/app/views/commontator/subscriptions/_link.html.erb +1 -1
- data/app/views/commontator/threads/_show.html.erb +1 -1
- data/config/initializers/commontator.rb +1 -1
- data/config/routes.rb +15 -15
- data/db/migrate/0_install.rb +50 -0
- data/db/migrate/0_install.rb~ +3 -3
- data/lib/commontator/shared_helper.rb +1 -1
- data/lib/commontator/version.rb +1 -1
- data/lib/commontator/version.rb~ +1 -1
- data/spec/app/controllers/commontator/comments_controller_spec.rb +90 -41
- data/spec/app/controllers/commontator/subscriptions_controller_spec.rb +16 -16
- data/spec/app/controllers/commontator/threads_controller_spec.rb +13 -13
- data/spec/app/helpers/commontator/application_helper_spec.rb +1 -1
- data/spec/app/helpers/commontator/threads_helper_spec.rb +1 -1
- data/spec/app/mailers/commontator/subscriptions_mailer_spec.rb +2 -2
- data/spec/app/models/commontator/comment_spec.rb +1 -1
- data/spec/app/models/commontator/subscription_spec.rb +1 -1
- data/spec/app/models/commontator/thread_spec.rb +1 -1
- data/spec/dummy/Rakefile +0 -1
- data/spec/dummy/config.ru +1 -1
- data/spec/dummy/config/application.rb +4 -36
- data/spec/dummy/config/boot.rb +4 -9
- data/spec/dummy/config/environment.rb +2 -2
- data/spec/dummy/config/environments/development.rb +11 -19
- data/spec/dummy/config/environments/production.rb +40 -27
- data/spec/dummy/config/environments/test.rb +13 -14
- data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy/config/initializers/inflections.rb +6 -5
- data/spec/dummy/config/initializers/secret_token.rb +7 -2
- data/spec/dummy/config/initializers/session_store.rb +0 -5
- data/spec/dummy/config/initializers/wrap_parameters.rb +6 -6
- data/spec/dummy/config/locales/en.yml +20 -2
- data/spec/dummy/db/schema.rb +41 -41
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/test.log +0 -8352
- data/spec/lib/commontator/acts_as_commontable_spec.rb +1 -1
- data/spec/lib/commontator/acts_as_commontable_spec.rb~ +2 -2
- data/spec/lib/commontator/acts_as_commontator_spec.rb +1 -1
- data/spec/lib/commontator/commontable_config_spec.rb +1 -1
- data/spec/lib/commontator/commontator_config_spec.rb +1 -1
- data/spec/lib/commontator/controller_includes_spec.rb +3 -3
- data/spec/lib/commontator/shared_helper_spec.rb +7 -3
- data/spec/lib/commontator_spec.rb +1 -1
- data/spec/{minitest_helper.rb → test_helper.rb} +8 -4
- metadata +9 -10
- data/app/models/commontator/comment_observer.rb +0 -12
- data/db/migrate/0_install_commontator.rb +0 -50
- data/spec/app/models/commontator/comment_observer_spec.rb +0 -27
data/db/migrate/0_install.rb~
CHANGED
@@ -16,7 +16,7 @@ class Install < ActiveRecord::Migration
|
|
16
16
|
t.timestamps
|
17
17
|
end
|
18
18
|
|
19
|
-
add_index :commontator_comments, [:creator_type, :creator_id, :thread_id], :name =>
|
19
|
+
add_index :commontator_comments, [:creator_type, :creator_id, :thread_id], :name => 'index_c_c_on_c_type_and_c_id_and_t_id'
|
20
20
|
add_index :commontator_comments, :thread_id
|
21
21
|
|
22
22
|
add_index :commontator_comments, :cached_votes_total
|
@@ -32,7 +32,7 @@ class Install < ActiveRecord::Migration
|
|
32
32
|
t.timestamps
|
33
33
|
end
|
34
34
|
|
35
|
-
add_index :commontator_subscriptions, [:subscriber_type, :subscriber_id, :thread_id], :unique => true, :name =>
|
35
|
+
add_index :commontator_subscriptions, [:subscriber_type, :subscriber_id, :thread_id], :unique => true, :name => 'index_c_s_on_s_type_and_s_id_and_t_id'
|
36
36
|
add_index :commontator_subscriptions, :thread_id
|
37
37
|
|
38
38
|
create_table "commontator_threads" do |t|
|
@@ -45,6 +45,6 @@ class Install < ActiveRecord::Migration
|
|
45
45
|
t.timestamps
|
46
46
|
end
|
47
47
|
|
48
|
-
add_index :commontator_threads, [:commontable_type, :commontable_id], :unique => true
|
48
|
+
add_index :commontator_threads, [:commontable_type, :commontable_id], :unique => true, :name => 'index_c_t_on_c_type_and_c_id'
|
49
49
|
end
|
50
50
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module Commontator
|
2
2
|
module SharedHelper
|
3
3
|
def commontator_thread(commontable)
|
4
|
-
user =
|
4
|
+
user = send(Commontator.current_user_method)
|
5
5
|
|
6
6
|
render(:partial => 'commontator/shared/thread',
|
7
7
|
:locals => {:thread => commontable.thread,
|
data/lib/commontator/version.rb
CHANGED
data/lib/commontator/version.rb~
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
1
|
+
require 'test_helper'
|
2
2
|
require 'acts_as_votable'
|
3
3
|
|
4
4
|
module Commontator
|
@@ -178,13 +178,13 @@ module Commontator
|
|
178
178
|
attributes = Hash.new
|
179
179
|
attributes[:body] = 'Something else'
|
180
180
|
|
181
|
-
|
181
|
+
patch :update, :id => @comment.id, :comment => attributes, :use_route => :commontator
|
182
182
|
assert_response 403
|
183
183
|
assigns(:comment).body.must_equal 'Something'
|
184
184
|
assigns(:comment).editor.must_be_nil
|
185
185
|
|
186
186
|
sign_in @user
|
187
|
-
|
187
|
+
patch :update, :id => @comment.id, :comment => attributes, :use_route => :commontator
|
188
188
|
assert_response 403
|
189
189
|
assigns(:comment).body.must_equal 'Something'
|
190
190
|
assigns(:comment).editor.must_be_nil
|
@@ -194,7 +194,7 @@ module Commontator
|
|
194
194
|
user2.can_edit = true
|
195
195
|
user2.is_admin = true
|
196
196
|
sign_in user2
|
197
|
-
|
197
|
+
patch :update, :id => @comment.id, :comment => attributes, :use_route => :commontator
|
198
198
|
assert_response 403
|
199
199
|
assigns(:comment).body.must_equal 'Something'
|
200
200
|
assigns(:comment).editor.must_be_nil
|
@@ -208,7 +208,7 @@ module Commontator
|
|
208
208
|
comment2.creator = @user
|
209
209
|
comment2.body = 'Something else'
|
210
210
|
comment2.save!
|
211
|
-
|
211
|
+
patch :update, :id => @comment.id, :comment => attributes, :use_route => :commontator
|
212
212
|
assert_response 403
|
213
213
|
assigns(:comment).body.must_equal 'Something'
|
214
214
|
assigns(:comment).editor.must_be_nil
|
@@ -220,40 +220,40 @@ module Commontator
|
|
220
220
|
attributes[:body] = 'Something else'
|
221
221
|
|
222
222
|
@user.can_read = true
|
223
|
-
|
223
|
+
patch :update, :id => @comment.id, :comment => attributes, :use_route => :commontator
|
224
224
|
assert_redirected_to @thread
|
225
225
|
assigns(:comment).errors.must_be_empty
|
226
226
|
assigns(:comment).editor.must_equal @user
|
227
227
|
|
228
228
|
@user.can_read = false
|
229
229
|
@user.can_edit = true
|
230
|
-
|
230
|
+
patch :update, :id => @comment.id, :comment => attributes, :use_route => :commontator
|
231
231
|
assert_redirected_to @thread
|
232
232
|
assigns(:comment).errors.must_be_empty
|
233
233
|
assigns(:comment).editor.must_equal @user
|
234
234
|
|
235
235
|
@user.can_edit = false
|
236
236
|
@user.is_admin = true
|
237
|
-
|
237
|
+
patch :update, :id => @comment.id, :comment => attributes, :use_route => :commontator
|
238
238
|
assert_redirected_to @thread
|
239
239
|
assigns(:comment).errors.must_be_empty
|
240
240
|
assigns(:comment).editor.must_equal @user
|
241
241
|
end
|
242
242
|
|
243
243
|
it 'wont delete unless authorized and not deleted' do
|
244
|
-
|
244
|
+
patch :delete, :id => @comment.id, :use_route => :commontator
|
245
245
|
assert_response 403
|
246
246
|
assigns(:comment).is_deleted?.must_equal false
|
247
247
|
|
248
248
|
sign_in @user
|
249
249
|
|
250
|
-
|
250
|
+
patch :delete, :id => @comment.id, :use_route => :commontator
|
251
251
|
assert_response 403
|
252
252
|
assigns(:comment).is_deleted?.must_equal false
|
253
253
|
|
254
254
|
@user.can_read = true
|
255
255
|
@comment.delete_by(@user).must_equal true
|
256
|
-
|
256
|
+
patch :delete, :id => @comment.id, :use_route => :commontator
|
257
257
|
assert_redirected_to @thread
|
258
258
|
assigns(:comment).errors.wont_be_empty
|
259
259
|
|
@@ -263,7 +263,7 @@ module Commontator
|
|
263
263
|
comment2.body = 'Something else'
|
264
264
|
comment2.save!
|
265
265
|
@comment.undelete_by(@user).must_equal true
|
266
|
-
|
266
|
+
patch :delete, :id => @comment.id, :use_route => :commontator
|
267
267
|
assert_response 403
|
268
268
|
assigns(:comment).is_deleted?.must_equal false
|
269
269
|
end
|
@@ -272,7 +272,7 @@ module Commontator
|
|
272
272
|
sign_in @user
|
273
273
|
|
274
274
|
@user.can_read = true
|
275
|
-
|
275
|
+
patch :delete, :id => @comment.id, :use_route => :commontator
|
276
276
|
assert_redirected_to @thread
|
277
277
|
assigns(:comment).errors.must_be_empty
|
278
278
|
assigns(:comment).is_deleted?.must_equal true
|
@@ -288,7 +288,7 @@ module Commontator
|
|
288
288
|
|
289
289
|
assigns(:comment).undelete_by(@user).must_equal true
|
290
290
|
user2.can_edit = true
|
291
|
-
|
291
|
+
patch :delete, :id => @comment.id, :use_route => :commontator
|
292
292
|
assert_redirected_to @thread
|
293
293
|
assigns(:comment).errors.must_be_empty
|
294
294
|
assigns(:comment).is_deleted?.must_equal true
|
@@ -297,7 +297,7 @@ module Commontator
|
|
297
297
|
assigns(:comment).undelete_by(@user).must_equal true
|
298
298
|
user2.can_edit = false
|
299
299
|
user2.is_admin = true
|
300
|
-
|
300
|
+
patch :delete, :id => @comment.id, :use_route => :commontator
|
301
301
|
assert_redirected_to @thread
|
302
302
|
assigns(:comment).errors.must_be_empty
|
303
303
|
assigns(:comment).is_deleted?.must_equal true
|
@@ -306,19 +306,19 @@ module Commontator
|
|
306
306
|
|
307
307
|
it 'wont undelete unless authorized and deleted' do
|
308
308
|
@comment.delete_by(@user).must_equal true
|
309
|
-
|
309
|
+
patch :undelete, :id => @comment.id, :use_route => :commontator
|
310
310
|
assert_response 403
|
311
311
|
assigns(:comment).is_deleted?.must_equal true
|
312
312
|
|
313
313
|
sign_in @user
|
314
314
|
|
315
|
-
|
315
|
+
patch :undelete, :id => @comment.id, :use_route => :commontator
|
316
316
|
assert_response 403
|
317
317
|
assigns(:comment).is_deleted?.must_equal true
|
318
318
|
|
319
319
|
@user.can_read = true
|
320
320
|
@comment.undelete_by(@user).must_equal true
|
321
|
-
|
321
|
+
patch :undelete, :id => @comment.id, :use_route => :commontator
|
322
322
|
assert_redirected_to @thread
|
323
323
|
assigns(:comment).errors.wont_be_empty
|
324
324
|
|
@@ -327,7 +327,7 @@ module Commontator
|
|
327
327
|
user2.can_edit = true
|
328
328
|
user2.is_admin = true
|
329
329
|
@comment.delete_by(user2).must_equal true
|
330
|
-
|
330
|
+
patch :undelete, :id => @comment.id, :use_route => :commontator
|
331
331
|
assert_response 403
|
332
332
|
assigns(:comment).is_deleted?.must_equal true
|
333
333
|
|
@@ -338,7 +338,7 @@ module Commontator
|
|
338
338
|
comment2.save!
|
339
339
|
@comment.undelete_by(@user).must_equal true
|
340
340
|
@comment.delete_by(@user).must_equal true
|
341
|
-
|
341
|
+
patch :undelete, :id => @comment.id, :use_route => :commontator
|
342
342
|
assert_response 403
|
343
343
|
assigns(:comment).is_deleted?.must_equal true
|
344
344
|
end
|
@@ -348,7 +348,7 @@ module Commontator
|
|
348
348
|
|
349
349
|
@comment.delete_by(@user).must_equal true
|
350
350
|
@user.can_read = true
|
351
|
-
|
351
|
+
patch :undelete, :id => @comment.id, :use_route => :commontator
|
352
352
|
assert_redirected_to @thread
|
353
353
|
assigns(:comment).errors.must_be_empty
|
354
354
|
assigns(:comment).is_deleted?.must_equal false
|
@@ -363,7 +363,7 @@ module Commontator
|
|
363
363
|
|
364
364
|
assigns(:comment).delete_by(@user).must_equal true
|
365
365
|
user2.can_edit = true
|
366
|
-
|
366
|
+
patch :undelete, :id => @comment.id, :use_route => :commontator
|
367
367
|
assert_redirected_to @thread
|
368
368
|
assigns(:comment).errors.must_be_empty
|
369
369
|
assigns(:comment).is_deleted?.must_equal false
|
@@ -371,28 +371,28 @@ module Commontator
|
|
371
371
|
assigns(:comment).delete_by(@user).must_equal true
|
372
372
|
user2.can_edit = false
|
373
373
|
user2.is_admin = true
|
374
|
-
|
374
|
+
patch :undelete, :id => @comment.id, :use_route => :commontator
|
375
375
|
assert_redirected_to @thread
|
376
376
|
assigns(:comment).errors.must_be_empty
|
377
377
|
assigns(:comment).is_deleted?.must_equal false
|
378
378
|
end
|
379
379
|
|
380
380
|
it 'wont upvote if not authorized' do
|
381
|
-
|
381
|
+
patch :upvote, :id => @comment.id, :use_route => :commontator
|
382
382
|
assert_response 403
|
383
383
|
assigns(:comment).upvotes.must_be_empty
|
384
384
|
assigns(:comment).downvotes.must_be_empty
|
385
385
|
|
386
386
|
sign_in @user
|
387
387
|
@user.can_read = true
|
388
|
-
|
388
|
+
patch :upvote, :id => @comment.id, :use_route => :commontator
|
389
389
|
assert_response 403
|
390
390
|
assigns(:comment).upvotes.must_be_empty
|
391
391
|
assigns(:comment).downvotes.must_be_empty
|
392
392
|
|
393
393
|
user2 = DummyUser.create
|
394
394
|
sign_in user2
|
395
|
-
|
395
|
+
patch :upvote, :id => @comment.id, :use_route => :commontator
|
396
396
|
assert_response 403
|
397
397
|
assigns(:comment).upvotes.must_be_empty
|
398
398
|
assigns(:comment).downvotes.must_be_empty
|
@@ -403,40 +403,40 @@ module Commontator
|
|
403
403
|
user2.can_read = true
|
404
404
|
sign_in user2
|
405
405
|
|
406
|
-
|
406
|
+
patch :upvote, :id => @comment.id, :use_route => :commontator
|
407
407
|
assert_redirected_to @thread
|
408
408
|
assigns(:comment).upvotes.count.must_equal 1
|
409
409
|
assigns(:comment).downvotes.must_be_empty
|
410
410
|
|
411
|
-
|
411
|
+
patch :upvote, :id => @comment.id, :use_route => :commontator
|
412
412
|
assert_redirected_to @thread
|
413
413
|
assigns(:comment).upvotes.count.must_equal 1
|
414
414
|
assigns(:comment).downvotes.must_be_empty
|
415
415
|
|
416
416
|
@comment.downvote_from(user2).must_equal true
|
417
417
|
|
418
|
-
|
418
|
+
patch :upvote, :id => @comment.id, :use_route => :commontator
|
419
419
|
assert_redirected_to @thread
|
420
420
|
assigns(:comment).upvotes.count.must_equal 1
|
421
421
|
assigns(:comment).downvotes.must_be_empty
|
422
422
|
end
|
423
423
|
|
424
424
|
it 'wont downvote if not authorized' do
|
425
|
-
|
425
|
+
patch :downvote, :id => @comment.id, :use_route => :commontator
|
426
426
|
assert_response 403
|
427
427
|
assigns(:comment).upvotes.must_be_empty
|
428
428
|
assigns(:comment).downvotes.must_be_empty
|
429
429
|
|
430
430
|
sign_in @user
|
431
431
|
@user.can_read = true
|
432
|
-
|
432
|
+
patch :downvote, :id => @comment.id, :use_route => :commontator
|
433
433
|
assert_response 403
|
434
434
|
assigns(:comment).upvotes.must_be_empty
|
435
435
|
assigns(:comment).downvotes.must_be_empty
|
436
436
|
|
437
437
|
user2 = DummyUser.create
|
438
438
|
sign_in user2
|
439
|
-
|
439
|
+
patch :downvote, :id => @comment.id, :use_route => :commontator
|
440
440
|
assert_response 403
|
441
441
|
assigns(:comment).upvotes.must_be_empty
|
442
442
|
assigns(:comment).downvotes.must_be_empty
|
@@ -447,19 +447,19 @@ module Commontator
|
|
447
447
|
user2.can_read = true
|
448
448
|
sign_in user2
|
449
449
|
|
450
|
-
|
450
|
+
patch :downvote, :id => @comment.id, :use_route => :commontator
|
451
451
|
assert_redirected_to @thread
|
452
452
|
assigns(:comment).upvotes.must_be_empty
|
453
453
|
assigns(:comment).downvotes.count.must_equal 1
|
454
454
|
|
455
|
-
|
455
|
+
patch :downvote, :id => @comment.id, :use_route => :commontator
|
456
456
|
assert_redirected_to @thread
|
457
457
|
assigns(:comment).upvotes.must_be_empty
|
458
458
|
assigns(:comment).downvotes.count.must_equal 1
|
459
459
|
|
460
460
|
@comment.upvote_from(user2).must_equal true
|
461
461
|
|
462
|
-
|
462
|
+
patch :downvote, :id => @comment.id, :use_route => :commontator
|
463
463
|
assert_redirected_to @thread
|
464
464
|
assigns(:comment).upvotes.must_be_empty
|
465
465
|
assigns(:comment).downvotes.count.must_equal 1
|
@@ -468,21 +468,21 @@ module Commontator
|
|
468
468
|
it 'wont unvote if not authorized' do
|
469
469
|
@comment.upvote_from(@user).must_equal true
|
470
470
|
|
471
|
-
|
471
|
+
patch :unvote, :id => @comment.id, :use_route => :commontator
|
472
472
|
assert_response 403
|
473
473
|
assigns(:comment).upvotes.count.must_equal 1
|
474
474
|
assigns(:comment).downvotes.must_be_empty
|
475
475
|
|
476
476
|
sign_in @user
|
477
477
|
@user.can_read = true
|
478
|
-
|
478
|
+
patch :unvote, :id => @comment.id, :use_route => :commontator
|
479
479
|
assert_response 403
|
480
480
|
assigns(:comment).upvotes.count.must_equal 1
|
481
481
|
assigns(:comment).downvotes.must_be_empty
|
482
482
|
|
483
483
|
user2 = DummyUser.create
|
484
484
|
sign_in user2
|
485
|
-
|
485
|
+
patch :unvote, :id => @comment.id, :use_route => :commontator
|
486
486
|
assert_response 403
|
487
487
|
assigns(:comment).upvotes.count.must_equal 1
|
488
488
|
assigns(:comment).downvotes.must_be_empty
|
@@ -494,21 +494,70 @@ module Commontator
|
|
494
494
|
sign_in user2
|
495
495
|
|
496
496
|
@comment.upvote_from(user2).must_equal true
|
497
|
-
|
497
|
+
patch :unvote, :id => @comment.id, :use_route => :commontator
|
498
498
|
assert_redirected_to @thread
|
499
499
|
assigns(:comment).upvotes.must_be_empty
|
500
500
|
assigns(:comment).downvotes.must_be_empty
|
501
501
|
|
502
|
-
|
502
|
+
patch :unvote, :id => @comment.id, :use_route => :commontator
|
503
503
|
assert_redirected_to @thread
|
504
504
|
assigns(:comment).upvotes.must_be_empty
|
505
505
|
assigns(:comment).downvotes.must_be_empty
|
506
506
|
|
507
507
|
@comment.downvote_from(user2).must_equal true
|
508
|
-
|
508
|
+
patch :unvote, :id => @comment.id, :use_route => :commontator
|
509
509
|
assert_redirected_to @thread
|
510
510
|
assigns(:comment).upvotes.must_be_empty
|
511
511
|
assigns(:comment).downvotes.must_be_empty
|
512
512
|
end
|
513
|
+
|
514
|
+
it 'wont send mail if recipients empty' do
|
515
|
+
if defined?(CommentsController::SubscriptionsMailer)
|
516
|
+
CommentsController::SubscriptionsMailer.__send__(:initialize)
|
517
|
+
else
|
518
|
+
CommentsController::SubscriptionsMailer = MiniTest::Mock.new
|
519
|
+
end
|
520
|
+
|
521
|
+
user2 = DummyUser.create
|
522
|
+
user2.can_read = true
|
523
|
+
|
524
|
+
email = MiniTest::Mock.new.expect(:deliver, nil)
|
525
|
+
CommentsController::SubscriptionsMailer.expect(:comment_created, email, [Comment, [user2]])
|
526
|
+
|
527
|
+
@user.can_read = true
|
528
|
+
sign_in @user
|
529
|
+
|
530
|
+
attributes = {:body => 'Something else'}
|
531
|
+
post :create, :thread_id => @thread.id, :comment => attributes, :use_route => :commontator
|
532
|
+
assigns(:comment).errors.must_be_empty
|
533
|
+
|
534
|
+
proc { CommentsController::SubscriptionsMailer.verify }.must_raise(MockExpectationError)
|
535
|
+
proc { email.verify }.must_raise(MockExpectationError)
|
536
|
+
end
|
537
|
+
|
538
|
+
it 'must send mail if recipients not empty' do
|
539
|
+
if defined?(CommentsController::SubscriptionsMailer)
|
540
|
+
CommentsController::SubscriptionsMailer.__send__(:initialize)
|
541
|
+
else
|
542
|
+
CommentsController::SubscriptionsMailer = MiniTest::Mock.new
|
543
|
+
end
|
544
|
+
|
545
|
+
user2 = DummyUser.create
|
546
|
+
user2.can_read = true
|
547
|
+
@thread.subscribe(user2)
|
548
|
+
|
549
|
+
email = MiniTest::Mock.new.expect(:deliver, nil)
|
550
|
+
CommentsController::SubscriptionsMailer.expect(:comment_created, email, [Comment, [user2]])
|
551
|
+
|
552
|
+
@user.can_read = true
|
553
|
+
sign_in @user
|
554
|
+
|
555
|
+
attributes = {:body => 'Something else'}
|
556
|
+
post :create, :thread_id => @thread.id, :comment => attributes, :use_route => :commontator
|
557
|
+
assigns(:comment).errors.must_be_empty
|
558
|
+
|
559
|
+
CommentsController::SubscriptionsMailer.verify
|
560
|
+
email.verify
|
561
|
+
end
|
513
562
|
end
|
514
563
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
1
|
+
require 'test_helper'
|
2
2
|
|
3
3
|
module Commontator
|
4
4
|
describe SubscriptionsController do
|
@@ -6,29 +6,29 @@ module Commontator
|
|
6
6
|
setup_controller_spec
|
7
7
|
end
|
8
8
|
|
9
|
-
it 'wont
|
10
|
-
|
9
|
+
it 'wont subscribe unless authorized' do
|
10
|
+
patch :subscribe, :thread_id => @thread.id, :use_route => :commontator
|
11
11
|
assert_response 403
|
12
12
|
@thread.subscription_for(nil).must_be_nil
|
13
13
|
@thread.subscription_for(@user).must_be_nil
|
14
14
|
|
15
15
|
sign_in @user
|
16
|
-
|
16
|
+
patch :subscribe, :thread_id => @thread.id, :use_route => :commontator
|
17
17
|
assert_response 403
|
18
18
|
@thread.subscription_for(@user).must_be_nil
|
19
19
|
|
20
20
|
@thread.subscribe(@user)
|
21
21
|
@user.can_read = true
|
22
|
-
|
22
|
+
patch :subscribe, :thread_id => @thread.id, :use_route => :commontator
|
23
23
|
assert_redirected_to @thread
|
24
24
|
assigns(:thread).errors.wont_be_empty
|
25
25
|
end
|
26
26
|
|
27
|
-
it 'must
|
27
|
+
it 'must subscribe if authorized' do
|
28
28
|
sign_in @user
|
29
29
|
|
30
30
|
@user.can_read = true
|
31
|
-
|
31
|
+
patch :subscribe, :thread_id => @thread.id, :use_route => :commontator
|
32
32
|
assert_redirected_to @thread
|
33
33
|
assigns(:thread).errors.must_be_empty
|
34
34
|
@thread.subscription_for(@user).wont_be_nil
|
@@ -36,7 +36,7 @@ module Commontator
|
|
36
36
|
@thread.unsubscribe(@user)
|
37
37
|
@user.can_read = false
|
38
38
|
@user.can_edit = true
|
39
|
-
|
39
|
+
patch :subscribe, :thread_id => @thread.id, :use_route => :commontator
|
40
40
|
assert_redirected_to @thread
|
41
41
|
assigns(:thread).errors.must_be_empty
|
42
42
|
@thread.subscription_for(@user).wont_be_nil
|
@@ -44,27 +44,27 @@ module Commontator
|
|
44
44
|
@thread.unsubscribe(@user)
|
45
45
|
@user.can_edit = false
|
46
46
|
@user.is_admin = true
|
47
|
-
|
47
|
+
patch :subscribe, :thread_id => @thread.id, :use_route => :commontator
|
48
48
|
assert_redirected_to @thread
|
49
49
|
assigns(:thread).errors.must_be_empty
|
50
50
|
@thread.subscription_for(@user).wont_be_nil
|
51
51
|
end
|
52
52
|
|
53
|
-
it 'wont
|
53
|
+
it 'wont unsubscribe unless authorized' do
|
54
54
|
@thread.subscribe(@user)
|
55
|
-
|
55
|
+
patch :unsubscribe, :thread_id => @thread.id, :use_route => :commontator
|
56
56
|
assert_response 403
|
57
57
|
@thread.subscription_for(nil).must_be_nil
|
58
58
|
@thread.subscription_for(@user).wont_be_nil
|
59
59
|
|
60
60
|
sign_in @user
|
61
|
-
|
61
|
+
patch :unsubscribe, :thread_id => @thread.id, :use_route => :commontator
|
62
62
|
assert_response 403
|
63
63
|
@thread.subscription_for(@user).wont_be_nil
|
64
64
|
|
65
65
|
@thread.unsubscribe(@user)
|
66
66
|
@user.can_read = true
|
67
|
-
|
67
|
+
patch :unsubscribe, :thread_id => @thread.id, :use_route => :commontator
|
68
68
|
assert_redirected_to @thread
|
69
69
|
assigns(:thread).errors.wont_be_empty
|
70
70
|
end
|
@@ -74,7 +74,7 @@ module Commontator
|
|
74
74
|
|
75
75
|
@thread.subscribe(@user)
|
76
76
|
@user.can_read = true
|
77
|
-
|
77
|
+
patch :unsubscribe, :thread_id => @thread.id, :use_route => :commontator
|
78
78
|
assert_redirected_to @thread
|
79
79
|
assigns(:thread).errors.must_be_empty
|
80
80
|
@thread.subscription_for(@user).must_be_nil
|
@@ -82,7 +82,7 @@ module Commontator
|
|
82
82
|
@thread.subscribe(@user)
|
83
83
|
@user.can_read = false
|
84
84
|
@user.can_edit = true
|
85
|
-
|
85
|
+
patch :unsubscribe, :thread_id => @thread.id, :use_route => :commontator
|
86
86
|
assert_redirected_to @thread
|
87
87
|
assigns(:thread).errors.must_be_empty
|
88
88
|
@thread.subscription_for(@user).must_be_nil
|
@@ -90,7 +90,7 @@ module Commontator
|
|
90
90
|
@thread.subscribe(@user)
|
91
91
|
@user.can_edit = false
|
92
92
|
@user.is_admin = true
|
93
|
-
|
93
|
+
patch :unsubscribe, :thread_id => @thread.id, :use_route => :commontator
|
94
94
|
assert_redirected_to @thread
|
95
95
|
assigns(:thread).errors.must_be_empty
|
96
96
|
@thread.subscription_for(@user).must_be_nil
|