##// END OF EJS Templates
Fixed that user with permission can't remove a locked watcher (#21382)....
Jean-Philippe Lang -
r14564:9b52ae5c5a64
parent child
Show More
@@ -62,12 +62,14 class WatchersController < ApplicationController
62 62 end
63 63
64 64 def destroy
65 @watched.set_watcher(User.visible.find(params[:user_id]), false)
65 @watched.set_watcher(User.find(params[:user_id]), false)
66 66 respond_to do |format|
67 67 format.html { redirect_to :back }
68 68 format.js
69 69 format.api { render_api_ok }
70 70 end
71 rescue ActiveRecord::RecordNotFound
72 render_404
71 73 end
72 74
73 75 def autocomplete_for_user
@@ -259,7 +259,7 class WatchersControllerTest < ActionController::TestCase
259 259 assert response.body.blank?
260 260 end
261 261
262 def test_remove_watcher
262 def test_destroy
263 263 @request.session[:user_id] = 2
264 264 assert_difference('Watcher.count', -1) do
265 265 xhr :delete, :destroy, :object_type => 'issue', :object_id => '2', :user_id => '3'
@@ -268,4 +268,26 class WatchersControllerTest < ActionController::TestCase
268 268 end
269 269 assert !Issue.find(2).watched_by?(User.find(3))
270 270 end
271
272 def test_destroy_locked_user
273 user = User.find(3)
274 user.lock!
275 assert user.reload.locked?
276
277 @request.session[:user_id] = 2
278 assert_difference('Watcher.count', -1) do
279 xhr :delete, :destroy, :object_type => 'issue', :object_id => '2', :user_id => '3'
280 assert_response :success
281 assert_match /watchers/, response.body
282 end
283 assert !Issue.find(2).watched_by?(User.find(3))
284 end
285
286 def test_destroy_invalid_user_should_respond_with_404
287 @request.session[:user_id] = 2
288 assert_no_difference('Watcher.count') do
289 delete :destroy, :object_type => 'issue', :object_id => '2', :user_id => '999'
290 assert_response 404
291 end
292 end
271 293 end
General Comments 0
You need to be logged in to leave comments. Login now