PageRenderTime 41ms CodeModel.GetById 15ms RepoModel.GetById 0ms app.codeStats 0ms

/test/functional/shared_uploads_controller_test.rb

https://github.com/newrooky/lftwb
Ruby | 170 lines | 126 code | 11 blank | 33 comment | 0 complexity | 42c48973935416743feb858243db3ae1 MD5 | raw file
Possible License(s): MIT
  1. require File.dirname(__FILE__) + '/../test_helper'
  2. class SharedUploadsControllerTest < Test::Unit::TestCase
  3. def setup
  4. @controller = SharedUploadsController.new
  5. @request = ActionController::TestRequest.new
  6. @response = ActionController::TestResponse.new
  7. end
  8. context 'not logged in' do
  9. # context "GET new" do
  10. # setup do
  11. # get :new
  12. # end
  13. #
  14. # should_respond_with :redirect
  15. # should_redirect_to 'login_path'
  16. # should_set_the_flash_to NOT_LOGGED_IN_MSG
  17. # end
  18. #
  19. # context 'on POST to :create while logged not in' do
  20. # setup do
  21. # assert_no_difference "SharedUpload.count" do
  22. # post :create
  23. # end
  24. # end
  25. #
  26. # should_respond_with :redirect
  27. # should_redirect_to 'login_path'
  28. # should_set_the_flash_to NOT_LOGGED_IN_MSG
  29. # end
  30. #
  31. # context 'on DELETE to :destroy' do
  32. # setup do
  33. # assert_no_difference "SharedUpload.count" do
  34. # delete :destroy
  35. # end
  36. # end
  37. #
  38. # should_respond_with :redirect
  39. # should_redirect_to 'login_path'
  40. # should_set_the_flash_to NOT_LOGGED_IN_MSG
  41. # end
  42. end
  43. context 'logged in as aaron' do
  44. setup do
  45. login_as :aaron
  46. @user = users(:aaron)
  47. end
  48. context 'on POST to :create' do
  49. setup do
  50. assert_difference "SharedUpload.count", 1 do
  51. post :create, {:user_id => users(:quentin).to_param, :upload_id => uploads(:aaron_upload).id, :public => 'on', :friend_ids => {users(:quentin).id => '1'}, :group_ids => {groups(:africa).id => '1'}}
  52. end
  53. end
  54. should "not share with africa group" do
  55. assert_nil SharedUpload.find_by_shared_by_id_and_shared_uploadable_id(@user.id, groups(:africa).id)
  56. end
  57. should_respond_with :redirect
  58. should_redirect_to 'user_uploads_path(@user)'
  59. should_set_the_flash_to(/File was successfully shared/i)
  60. end
  61. context "trying to share quentin's upload" do
  62. setup do
  63. assert_no_difference "SharedUpload.count" do
  64. post :create, {:user_id => users(:quentin).to_param, :upload_id => uploads(:first).id, :public => 'on', :friend_ids => {users(:quentin).id => '1'}, :group_ids => {groups(:africa).id => '1'}}
  65. end
  66. end
  67. should "not share with africa group" do
  68. assert_nil SharedUpload.find_by_shared_by_id_and_shared_uploadable_id(@user.id, groups(:africa).id)
  69. end
  70. should_respond_with :redirect
  71. should_redirect_to 'user_uploads_path(@user)'
  72. should_set_the_flash_to(/File was successfully shared/i)
  73. end
  74. context 'on DELETE to :destroy' do
  75. setup do
  76. assert_difference "SharedUpload.count", -1 do
  77. delete :destroy, {:id => shared_uploads(:shared_by_aaron_to_quentin)}
  78. end
  79. end
  80. should_set_the_flash_to(/Deleted shared file/i)
  81. end
  82. end
  83. context 'logged in as quentin' do
  84. setup do
  85. login_as :quentin
  86. @user = users(:quentin)
  87. end
  88. context "GET new" do
  89. setup do
  90. get :new, { :user_id => users(:quentin).to_param, :upload_id => uploads(:first) }
  91. end
  92. should_respond_with :success
  93. should_render_template 'new'
  94. end
  95. context "GET index" do
  96. setup do
  97. get :index, { :user_id => users(:quentin).to_param }
  98. end
  99. should_respond_with :success
  100. should_render_template 'index'
  101. end
  102. context "GET for_me" do
  103. setup do
  104. get :for_me, { :user_id => users(:quentin).to_param }
  105. end
  106. should_respond_with :success
  107. should_render_template 'for_me'
  108. end
  109. context "GET for_group" do
  110. setup do
  111. get :for_group, { :group_id => groups(:africa).to_param }
  112. end
  113. should_respond_with :success
  114. should_render_template 'for_group'
  115. end
  116. context 'on POST to :create' do
  117. setup do
  118. assert_difference "SharedUpload.count", 2 do
  119. post :create, {:user_id => users(:quentin).to_param, :upload_id => uploads(:first).id, :public => 'on', :friend_ids => {users(:aaron).id => '1'}, :group_ids => {groups(:africa).id => '1'}}
  120. end
  121. end
  122. should "create a new record" do
  123. assert SharedUpload.find_by_shared_by_id_and_shared_uploadable_id(@user.id, groups(:africa).id)
  124. end
  125. should_respond_with :redirect
  126. should_redirect_to 'user_uploads_path(@user)'
  127. should_set_the_flash_to(/File was successfully shared/i)
  128. end
  129. context 'on DELETE to :destroy' do
  130. setup do
  131. assert_difference "SharedUpload.count", -1 do
  132. delete :destroy, {:id => shared_uploads(:shared_by_aaron_to_quentin)}
  133. end
  134. end
  135. should_set_the_flash_to(/Deleted shared file/i)
  136. end
  137. end
  138. end