summaryrefslogtreecommitdiffstats
path: root/test/functional/projects_controller_test.rb
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2012-06-25 17:49:35 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2012-06-25 17:49:35 +0000
commitac56c0c99ccd14c7229145fc22d6e9eb13ee0af0 (patch)
treef54401b77f7195a1795f4a189f9f9d35734c0a2b /test/functional/projects_controller_test.rb
parent5961a1e70d1efdfb5c4fd28c20dc8cc4d9a51bac (diff)
downloadredmine-ac56c0c99ccd14c7229145fc22d6e9eb13ee0af0.tar.gz
redmine-ac56c0c99ccd14c7229145fc22d6e9eb13ee0af0.zip
Ability to close projects (read-only) (#3640).
A new permission (Close/reopen project) is available to give non-admin users the ability to close their projects. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9883 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'test/functional/projects_controller_test.rb')
-rw-r--r--test/functional/projects_controller_test.rb47
1 files changed, 47 insertions, 0 deletions
diff --git a/test/functional/projects_controller_test.rb b/test/functional/projects_controller_test.rb
index 299a6e767..5fbb7e20e 100644
--- a/test/functional/projects_controller_test.rb
+++ b/test/functional/projects_controller_test.rb
@@ -380,6 +380,21 @@ class ProjectsControllerTest < ActionController::TestCase
assert_template 'settings'
end
+ def test_settings_should_be_denied_for_member_on_closed_project
+ Project.find(1).close
+ @request.session[:user_id] = 2 # manager
+
+ get :settings, :id => 1
+ assert_response 403
+ end
+
+ def test_settings_should_be_denied_for_anonymous_on_closed_project
+ Project.find(1).close
+
+ get :settings, :id => 1
+ assert_response 302
+ end
+
def test_update
@request.session[:user_id] = 2 # manager
post :update, :id => 1, :project => {:name => 'Test changed name',
@@ -397,6 +412,23 @@ class ProjectsControllerTest < ActionController::TestCase
assert_error_tag :content => /name can't be blank/i
end
+ def test_update_should_be_denied_for_member_on_closed_project
+ Project.find(1).close
+ @request.session[:user_id] = 2 # manager
+
+ post :update, :id => 1, :project => {:name => 'Closed'}
+ assert_response 403
+ assert_equal 'eCookbook', Project.find(1).name
+ end
+
+ def test_update_should_be_denied_for_anonymous_on_closed_project
+ Project.find(1).close
+
+ post :update, :id => 1, :project => {:name => 'Closed'}
+ assert_response 302
+ assert_equal 'eCookbook', Project.find(1).name
+ end
+
def test_modules
@request.session[:user_id] = 2
Project.find(1).enabled_module_names = ['issue_tracking', 'news']
@@ -444,6 +476,21 @@ class ProjectsControllerTest < ActionController::TestCase
assert Project.find(1).active?
end
+ def test_close
+ @request.session[:user_id] = 2
+ post :close, :id => 1
+ assert_redirected_to '/projects/ecookbook'
+ assert_equal Project::STATUS_CLOSED, Project.find(1).status
+ end
+
+ def test_reopen
+ Project.find(1).close
+ @request.session[:user_id] = 2
+ post :reopen, :id => 1
+ assert_redirected_to '/projects/ecookbook'
+ assert Project.find(1).active?
+ end
+
def test_project_breadcrumbs_should_be_limited_to_3_ancestors
CustomField.delete_all
parent = nil