mirror of
https://github.com/redmine/redmine.git
synced 2025-11-09 06:46:01 +01:00
git-svn-id: http://svn.redmine.org/redmine/branches/3.3-stable@15478 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
@@ -1864,6 +1864,31 @@ class IssuesControllerTest < ActionController::TestCase
|
||||
end
|
||||
end
|
||||
|
||||
def test_new_should_propose_allowed_trackers
|
||||
role = Role.find(1)
|
||||
role.set_permission_trackers 'add_issues', [1, 3]
|
||||
role.save!
|
||||
@request.session[:user_id] = 2
|
||||
|
||||
get :new, :project_id => 1
|
||||
assert_response :success
|
||||
assert_select 'select[name=?]', 'issue[tracker_id]' do
|
||||
assert_select 'option', 2
|
||||
assert_select 'option[value="1"]'
|
||||
assert_select 'option[value="3"]'
|
||||
end
|
||||
end
|
||||
|
||||
def test_new_without_allowed_trackers_should_respond_with_403
|
||||
role = Role.find(1)
|
||||
role.set_permission_trackers 'add_issues', []
|
||||
role.save!
|
||||
@request.session[:user_id] = 2
|
||||
|
||||
get :new, :project_id => 1
|
||||
assert_response 403
|
||||
end
|
||||
|
||||
def test_new_should_preselect_default_version
|
||||
version = Version.generate!(:project_id => 1)
|
||||
Project.find(1).update_attribute :default_version_id, version.id
|
||||
@@ -2432,6 +2457,23 @@ class IssuesControllerTest < ActionController::TestCase
|
||||
assert_nil issue.custom_field_value(cf2)
|
||||
end
|
||||
|
||||
def test_create_should_ignore_unallowed_trackers
|
||||
role = Role.find(1)
|
||||
role.set_permission_trackers :add_issues, [3]
|
||||
role.save!
|
||||
@request.session[:user_id] = 2
|
||||
|
||||
issue = new_record(Issue) do
|
||||
post :create, :project_id => 1, :issue => {
|
||||
:tracker_id => 1,
|
||||
:status_id => 1,
|
||||
:subject => 'Test'
|
||||
}
|
||||
assert_response 302
|
||||
end
|
||||
assert_equal 3, issue.tracker_id
|
||||
end
|
||||
|
||||
def test_post_create_with_watchers
|
||||
@request.session[:user_id] = 2
|
||||
ActionMailer::Base.deliveries.clear
|
||||
@@ -3830,6 +3872,30 @@ class IssuesControllerTest < ActionController::TestCase
|
||||
assert_redirected_to '/issues/11?issue_count=3&issue_position=2&next_issue_id=12&prev_issue_id=8'
|
||||
end
|
||||
|
||||
def test_update_with_permission_on_tracker_should_be_allowed
|
||||
role = Role.find(1)
|
||||
role.set_permission_trackers :edit_issues, [1]
|
||||
role.save!
|
||||
issue = Issue.generate!(:project_id => 1, :tracker_id => 1, :subject => 'Original subject')
|
||||
|
||||
@request.session[:user_id] = 2
|
||||
put :update, :id => issue.id, :issue => {:subject => 'Changed subject'}
|
||||
assert_response 302
|
||||
assert_equal 'Changed subject', issue.reload.subject
|
||||
end
|
||||
|
||||
def test_update_without_permission_on_tracker_should_be_denied
|
||||
role = Role.find(1)
|
||||
role.set_permission_trackers :edit_issues, [1]
|
||||
role.save!
|
||||
issue = Issue.generate!(:project_id => 1, :tracker_id => 2, :subject => 'Original subject')
|
||||
|
||||
@request.session[:user_id] = 2
|
||||
put :update, :id => issue.id, :issue => {:subject => 'Changed subject'}
|
||||
assert_response 302
|
||||
assert_equal 'Original subject', issue.reload.subject
|
||||
end
|
||||
|
||||
def test_get_bulk_edit
|
||||
@request.session[:user_id] = 2
|
||||
get :bulk_edit, :ids => [1, 3]
|
||||
@@ -4660,6 +4726,32 @@ class IssuesControllerTest < ActionController::TestCase
|
||||
assert_response 404
|
||||
end
|
||||
|
||||
def test_destroy_with_permission_on_tracker_should_be_allowed
|
||||
role = Role.find(1)
|
||||
role.set_permission_trackers :delete_issues, [1]
|
||||
role.save!
|
||||
issue = Issue.generate!(:project_id => 1, :tracker_id => 1)
|
||||
|
||||
@request.session[:user_id] = 2
|
||||
assert_difference 'Issue.count', -1 do
|
||||
delete :destroy, :id => issue.id
|
||||
end
|
||||
assert_response 302
|
||||
end
|
||||
|
||||
def test_destroy_without_permission_on_tracker_should_be_denied
|
||||
role = Role.find(1)
|
||||
role.set_permission_trackers :delete_issues, [2]
|
||||
role.save!
|
||||
issue = Issue.generate!(:project_id => 1, :tracker_id => 1)
|
||||
|
||||
@request.session[:user_id] = 2
|
||||
assert_no_difference 'Issue.count' do
|
||||
delete :destroy, :id => issue.id
|
||||
end
|
||||
assert_response 403
|
||||
end
|
||||
|
||||
def test_default_search_scope
|
||||
get :index
|
||||
|
||||
|
||||
Reference in New Issue
Block a user