diff --git a/test/functional/projects_controller_test.rb b/test/functional/projects_controller_test.rb index 77480894a4..8eb22365a4 100644 --- a/test/functional/projects_controller_test.rb +++ b/test/functional/projects_controller_test.rb @@ -656,6 +656,34 @@ class ProjectsControllerTest < Redmine::ControllerTest assert_select "tr#member-#{member.id}" end + def test_settings_should_show_tabs_according_to_permissions + @request.session[:user_id] = 3 + role = User.find(3).roles.first + + role.permissions = [] + role.save + role.add_permission! :manage_repository, :manage_boards, :manage_project_activities + get :settings, :params => { + :id => 'ecookbook' + } + assert_response :success + assert_select 'a#tab-repositories' + assert_select 'a#tab-boards' + assert_select 'a#tab-activities' + assert_select 'a#tab-versions', false # Tab that need other permissions + end + + def test_settings_should_be_denied_for_no_permission_to_tabs + @request.session[:user_id] = 3 + role = User.find(3).roles.first + + role.remove_permission! :edit_project, :manage_members, :manage_versions, :manage_categories, :manage_project_activities, :manage_repository, :manage_boards + get :settings, :params => { + :id => 'ecookbook' + } + assert_response 403 + end + def test_update @request.session[:user_id] = 2 # manager post :update, :params => {