summaryrefslogtreecommitdiffstats
path: root/test/functional/projects_controller_test.rb
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2016-08-30 19:32:52 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2016-08-30 19:32:52 +0000
commitb405a0be535b365276dfdfbf092107bb07c70713 (patch)
tree8133315a6bef62314521b3d723c5adbadaf421ed /test/functional/projects_controller_test.rb
parent9f9232381ab6fc11a1d8a06bdbfb33d54d4e3623 (diff)
downloadredmine-b405a0be535b365276dfdfbf092107bb07c70713.tar.gz
redmine-b405a0be535b365276dfdfbf092107bb07c70713.zip
Disable "Select project modules" permission does not apply to the new project form (#23470).
git-svn-id: http://svn.redmine.org/redmine/trunk@15752 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'test/functional/projects_controller_test.rb')
-rw-r--r--test/functional/projects_controller_test.rb44
1 files changed, 44 insertions, 0 deletions
diff --git a/test/functional/projects_controller_test.rb b/test/functional/projects_controller_test.rb
index 2a2cbbde3..423a4a045 100644
--- a/test/functional/projects_controller_test.rb
+++ b/test/functional/projects_controller_test.rb
@@ -111,6 +111,22 @@ class ProjectsControllerTest < Redmine::ControllerTest
end
end
+ def test_new_by_non_admin_should_display_modules_if_default_role_is_allowed_to_select_modules
+ Role.non_member.add_permission!(:add_project)
+ default_role = Role.generate!(:permissions => [:view_issues])
+ user = User.generate!
+ @request.session[:user_id] = user.id
+
+ with_settings :new_project_user_role_id => default_role.id.to_s do
+ get :new
+ assert_select 'input[name=?]', 'project[enabled_module_names][]', 0
+
+ default_role.add_permission!(:select_project_modules)
+ get :new
+ assert_select 'input[name=?]', 'project[enabled_module_names][]'
+ end
+ end
+
def test_new_should_not_display_invalid_search_link
@request.session[:user_id] = 1
@@ -277,6 +293,34 @@ class ProjectsControllerTest < Redmine::ControllerTest
assert_select_error /Subproject of is invalid/
end
+ def test_create_by_non_admin_should_accept_modules_if_default_role_is_allowed_to_select_modules
+ Role.non_member.add_permission!(:add_project)
+ default_role = Role.generate!(:permissions => [:view_issues, :add_project])
+ user = User.generate!
+ @request.session[:user_id] = user.id
+
+ with_settings :new_project_user_role_id => default_role.id.to_s, :default_projects_modules => %w(news files) do
+ project = new_record(Project) do
+ post :create, :project => {
+ :name => "blog1",
+ :identifier => "blog1",
+ :enabled_module_names => ["issue_tracking", "repository"]
+ }
+ end
+ assert_equal %w(files news), project.enabled_module_names.sort
+
+ default_role.add_permission!(:select_project_modules)
+ project = new_record(Project) do
+ post :create, :project => {
+ :name => "blog2",
+ :identifier => "blog2",
+ :enabled_module_names => ["issue_tracking", "repository"]
+ }
+ end
+ assert_equal %w(issue_tracking repository), project.enabled_module_names.sort
+ end
+ end
+
def test_create_subproject_with_inherit_members_should_inherit_members
Role.find_by_name('Manager').add_permission! :add_subprojects
parent = Project.find(1)