Mercurial > hg > soundsoftware-site
diff test/functional/watchers_controller_test.rb @ 1517:dffacf8a6908 redmine-2.5
Update to Redmine SVN revision 13367 on 2.5-stable branch
author | Chris Cannam |
---|---|
date | Tue, 09 Sep 2014 09:29:00 +0100 |
parents | e248c7af89ec |
children |
line wrap: on
line diff
--- a/test/functional/watchers_controller_test.rb Tue Sep 09 09:28:31 2014 +0100 +++ b/test/functional/watchers_controller_test.rb Tue Sep 09 09:29:00 2014 +0100 @@ -56,6 +56,27 @@ assert Issue.find(3).watched_by?(User.find(3)) end + def test_watch_a_news_module_should_add_watcher + @request.session[:user_id] = 7 + assert_not_nil m = Project.find(1).enabled_module('news') + + assert_difference 'Watcher.count' do + xhr :post, :watch, :object_type => 'enabled_module', :object_id => m.id.to_s + assert_response :success + end + assert m.reload.watched_by?(User.find(7)) + end + + def test_watch_a_private_news_module_without_permission_should_fail + @request.session[:user_id] = 7 + assert_not_nil m = Project.find(2).enabled_module('news') + + assert_no_difference 'Watcher.count' do + xhr :post, :watch, :object_type => 'enabled_module', :object_id => m.id.to_s + assert_response 403 + end + end + def test_watch_should_be_denied_without_permission Role.find(2).remove_permission! :view_issues @request.session[:user_id] = 3 @@ -131,7 +152,8 @@ def test_create @request.session[:user_id] = 2 assert_difference('Watcher.count') do - xhr :post, :create, :object_type => 'issue', :object_id => '2', :watcher => {:user_id => '4'} + xhr :post, :create, :object_type => 'issue', :object_id => '2', + :watcher => {:user_id => '4'} assert_response :success assert_match /watchers/, response.body assert_match /ajax-modal/, response.body @@ -142,7 +164,8 @@ def test_create_multiple @request.session[:user_id] = 2 assert_difference('Watcher.count', 2) do - xhr :post, :create, :object_type => 'issue', :object_id => '2', :watcher => {:user_ids => ['4', '7']} + xhr :post, :create, :object_type => 'issue', :object_id => '2', + :watcher => {:user_ids => ['4', '7']} assert_response :success assert_match /watchers/, response.body assert_match /ajax-modal/, response.body @@ -162,15 +185,46 @@ assert_select 'input[name=?][value=9]', 'watcher[user_ids][]' end + def test_search_non_member_on_create + @request.session[:user_id] = 2 + project = Project.find_by_name("ecookbook") + user = User.generate!(:firstname => 'issue15622') + membership = user.membership(project) + assert_nil membership + xhr :get, :autocomplete_for_user, :q => 'issue15622', :project_id => 'ecookbook' + assert_response :success + assert_select 'input', :count => 1 + end + def test_autocomplete_on_watchable_update @request.session[:user_id] = 2 - xhr :get, :autocomplete_for_user, :q => 'mi', :object_id => '2' , :object_type => 'issue', :project_id => 'ecookbook' + xhr :get, :autocomplete_for_user, :q => 'mi', :object_id => '2', + :object_type => 'issue', :project_id => 'ecookbook' assert_response :success assert_select 'input', :count => 3 assert_select 'input[name=?][value=2]', 'watcher[user_ids][]' assert_select 'input[name=?][value=8]', 'watcher[user_ids][]' assert_select 'input[name=?][value=9]', 'watcher[user_ids][]' + end + def test_search_and_add_non_member_on_update + @request.session[:user_id] = 2 + project = Project.find_by_name("ecookbook") + user = User.generate!(:firstname => 'issue15622') + membership = user.membership(project) + assert_nil membership + xhr :get, :autocomplete_for_user, :q => 'issue15622', :object_id => '2', + :object_type => 'issue', :project_id => 'ecookbook' + assert_response :success + assert_select 'input', :count => 1 + assert_difference('Watcher.count', 1) do + xhr :post, :create, :object_type => 'issue', :object_id => '2', + :watcher => {:user_ids => ["#{user.id}"]} + assert_response :success + assert_match /watchers/, response.body + assert_match /ajax-modal/, response.body + end + assert Issue.find(2).watched_by?(user) end def test_append @@ -183,6 +237,13 @@ end end + def test_append_without_user_should_render_nothing + @request.session[:user_id] = 2 + xhr :post, :append, :project_id => 'ecookbook' + assert_response :success + assert response.body.blank? + end + def test_remove_watcher @request.session[:user_id] = 2 assert_difference('Watcher.count', -1) do