PageRenderTime 44ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 0ms

/test/functional/monitorships_controller_test.rb

https://github.com/newrooky/lftwb
Ruby | 74 lines | 63 code | 11 blank | 0 comment | 0 complexity | 87581348ecd0248e58272509260da946 MD5 | raw file
Possible License(s): MIT
  1. require File.dirname(__FILE__) + '/../test_helper'
  2. class MonitorshipsControllerTest < Test::Unit::TestCase
  3. def setup
  4. @controller = MonitorshipsController.new
  5. @request = ActionController::TestRequest.new
  6. @response = ActionController::TestResponse.new
  7. end
  8. should "require login" do
  9. login_as :admin
  10. xhr :post, :create, :forum_id => forums(:rails).id, :topic_id => topics(:pdi).id, :id => users(:admin).id
  11. assert_response :success
  12. end
  13. should "add monitorship" do
  14. login_as :joe
  15. assert_difference "Monitorship.count" do
  16. xhr :post, :create, :forum_id => forums(:rails).id, :topic_id => topics(:pdi).id, :id => users(:joe).id
  17. assert_response :success
  18. end
  19. assert topics(:pdi).monitors(true).include?(users(:joe))
  20. end
  21. should "activate monitorship" do
  22. login_as :sam
  23. assert_difference "Monitorship.count", 0 do
  24. xhr :post, :create, :forum_id => forums(:rails).id, :topic_id => topics(:pdi).id, :id => users(:sam).id
  25. assert_response :success
  26. end
  27. end
  28. should "not duplicate monitorship" do
  29. login_as :aaron
  30. assert_difference "Monitorship.count", 0 do
  31. xhr :post, :create, :forum_id => forums(:rails).id, :topic_id => topics(:pdi).id, :id => users(:aaron).id
  32. assert_response :success
  33. end
  34. end
  35. should "deactivate monitorship" do
  36. login_as :aaron
  37. assert_difference "Monitorship.count", 0 do
  38. xhr :delete, :destroy, :forum_id => forums(:rails).id, :topic_id => topics(:pdi).id, :id => users(:aaron).id
  39. assert_response :success
  40. end
  41. assert !topics(:pdi).monitors(true).include?(users(:aaron))
  42. end
  43. should "require login with html" do
  44. post :create, :forum_id => forums(:rails).id, :topic_id => topics(:pdi).id, :id => users(:aaron).id
  45. assert_redirected_to login_path
  46. end
  47. should "add monitorship with html" do
  48. login_as :joe
  49. assert_difference "Monitorship.count" do
  50. post :create, :forum_id => forums(:rails).to_param, :topic_id => topics(:pdi).id, :id => users(:joe).id
  51. assert_redirected_to forum_topic_path(forums(:rails), topics(:pdi))
  52. end
  53. assert topics(:pdi).monitors(true).include?(users(:joe))
  54. end
  55. should "deactivate monitorship with html" do
  56. login_as :admin
  57. assert_difference "Monitorship.count", 0 do
  58. delete :destroy, :forum_id => forums(:rails).to_param, :topic_id => topics(:pdi).id, :id => users(:admin).id
  59. assert_redirected_to forum_topic_path(forums(:rails), topics(:pdi))
  60. end
  61. assert !topics(:pdi).monitors(true).include?(users(:admin))
  62. end
  63. end