mirror of
https://github.com/redmine/redmine.git
synced 2026-05-09 00:37:29 +02:00
Display issue form fields according to permissions.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@8227 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
@@ -714,6 +714,93 @@ class IssuesControllerTest < ActionController::TestCase
|
||||
:content => /Notes/ } }
|
||||
end
|
||||
|
||||
def test_show_should_display_update_form
|
||||
@request.session[:user_id] = 2
|
||||
get :show, :id => 1
|
||||
assert_response :success
|
||||
|
||||
assert_tag 'form', :attributes => {:id => 'issue-form'}
|
||||
assert_tag 'input', :attributes => {:name => 'issue[is_private]'}
|
||||
assert_tag 'select', :attributes => {:name => 'issue[tracker_id]'}
|
||||
assert_tag 'input', :attributes => {:name => 'issue[subject]'}
|
||||
assert_tag 'textarea', :attributes => {:name => 'issue[description]'}
|
||||
assert_tag 'select', :attributes => {:name => 'issue[status_id]'}
|
||||
assert_tag 'select', :attributes => {:name => 'issue[priority_id]'}
|
||||
assert_tag 'select', :attributes => {:name => 'issue[assigned_to_id]'}
|
||||
assert_tag 'select', :attributes => {:name => 'issue[category_id]'}
|
||||
assert_tag 'select', :attributes => {:name => 'issue[fixed_version_id]'}
|
||||
assert_tag 'input', :attributes => {:name => 'issue[parent_issue_id]'}
|
||||
assert_tag 'input', :attributes => {:name => 'issue[start_date]'}
|
||||
assert_tag 'input', :attributes => {:name => 'issue[due_date]'}
|
||||
assert_tag 'select', :attributes => {:name => 'issue[done_ratio]'}
|
||||
assert_tag 'input', :attributes => { :name => 'issue[custom_field_values][2]' }
|
||||
assert_no_tag 'input', :attributes => {:name => 'issue[watcher_user_ids][]'}
|
||||
assert_tag 'textarea', :attributes => {:name => 'notes'}
|
||||
end
|
||||
|
||||
def test_show_should_display_update_form_with_minimal_permissions
|
||||
Role.find(1).update_attribute :permissions, [:view_issues, :add_issue_notes]
|
||||
Workflow.delete_all :role_id => 1
|
||||
|
||||
@request.session[:user_id] = 2
|
||||
get :show, :id => 1
|
||||
assert_response :success
|
||||
|
||||
assert_tag 'form', :attributes => {:id => 'issue-form'}
|
||||
assert_no_tag 'input', :attributes => {:name => 'issue[is_private]'}
|
||||
assert_no_tag 'select', :attributes => {:name => 'issue[tracker_id]'}
|
||||
assert_no_tag 'input', :attributes => {:name => 'issue[subject]'}
|
||||
assert_no_tag 'textarea', :attributes => {:name => 'issue[description]'}
|
||||
assert_no_tag 'select', :attributes => {:name => 'issue[status_id]'}
|
||||
assert_no_tag 'select', :attributes => {:name => 'issue[priority_id]'}
|
||||
assert_no_tag 'select', :attributes => {:name => 'issue[assigned_to_id]'}
|
||||
assert_no_tag 'select', :attributes => {:name => 'issue[category_id]'}
|
||||
assert_no_tag 'select', :attributes => {:name => 'issue[fixed_version_id]'}
|
||||
assert_no_tag 'input', :attributes => {:name => 'issue[parent_issue_id]'}
|
||||
assert_no_tag 'input', :attributes => {:name => 'issue[start_date]'}
|
||||
assert_no_tag 'input', :attributes => {:name => 'issue[due_date]'}
|
||||
assert_no_tag 'select', :attributes => {:name => 'issue[done_ratio]'}
|
||||
assert_no_tag 'input', :attributes => { :name => 'issue[custom_field_values][2]' }
|
||||
assert_no_tag 'input', :attributes => {:name => 'issue[watcher_user_ids][]'}
|
||||
assert_tag 'textarea', :attributes => {:name => 'notes'}
|
||||
end
|
||||
|
||||
def test_show_should_display_update_form_with_workflow_permissions
|
||||
Role.find(1).update_attribute :permissions, [:view_issues, :add_issue_notes]
|
||||
|
||||
@request.session[:user_id] = 2
|
||||
get :show, :id => 1
|
||||
assert_response :success
|
||||
|
||||
assert_tag 'form', :attributes => {:id => 'issue-form'}
|
||||
assert_no_tag 'input', :attributes => {:name => 'issue[is_private]'}
|
||||
assert_no_tag 'select', :attributes => {:name => 'issue[tracker_id]'}
|
||||
assert_no_tag 'input', :attributes => {:name => 'issue[subject]'}
|
||||
assert_no_tag 'textarea', :attributes => {:name => 'issue[description]'}
|
||||
assert_tag 'select', :attributes => {:name => 'issue[status_id]'}
|
||||
assert_no_tag 'select', :attributes => {:name => 'issue[priority_id]'}
|
||||
assert_tag 'select', :attributes => {:name => 'issue[assigned_to_id]'}
|
||||
assert_no_tag 'select', :attributes => {:name => 'issue[category_id]'}
|
||||
assert_tag 'select', :attributes => {:name => 'issue[fixed_version_id]'}
|
||||
assert_no_tag 'input', :attributes => {:name => 'issue[parent_issue_id]'}
|
||||
assert_no_tag 'input', :attributes => {:name => 'issue[start_date]'}
|
||||
assert_no_tag 'input', :attributes => {:name => 'issue[due_date]'}
|
||||
assert_tag 'select', :attributes => {:name => 'issue[done_ratio]'}
|
||||
assert_no_tag 'input', :attributes => { :name => 'issue[custom_field_values][2]' }
|
||||
assert_no_tag 'input', :attributes => {:name => 'issue[watcher_user_ids][]'}
|
||||
assert_tag 'textarea', :attributes => {:name => 'notes'}
|
||||
end
|
||||
|
||||
def test_show_should_not_display_update_form_without_permissions
|
||||
Role.find(1).update_attribute :permissions, [:view_issues]
|
||||
|
||||
@request.session[:user_id] = 2
|
||||
get :show, :id => 1
|
||||
assert_response :success
|
||||
|
||||
assert_no_tag 'form', :attributes => {:id => 'issue-form'}
|
||||
end
|
||||
|
||||
def test_update_form_should_not_display_inactive_enumerations
|
||||
@request.session[:user_id] = 2
|
||||
get :show, :id => 1
|
||||
@@ -855,8 +942,21 @@ class IssuesControllerTest < ActionController::TestCase
|
||||
assert_response :success
|
||||
assert_template 'new'
|
||||
|
||||
assert_tag :tag => 'input', :attributes => { :name => 'issue[custom_field_values][2]',
|
||||
:value => 'Default string' }
|
||||
assert_tag 'input', :attributes => {:name => 'issue[is_private]'}
|
||||
assert_tag 'select', :attributes => {:name => 'issue[tracker_id]'}
|
||||
assert_tag 'input', :attributes => {:name => 'issue[subject]'}
|
||||
assert_tag 'textarea', :attributes => {:name => 'issue[description]'}
|
||||
assert_tag 'select', :attributes => {:name => 'issue[status_id]'}
|
||||
assert_tag 'select', :attributes => {:name => 'issue[priority_id]'}
|
||||
assert_tag 'select', :attributes => {:name => 'issue[assigned_to_id]'}
|
||||
assert_tag 'select', :attributes => {:name => 'issue[category_id]'}
|
||||
assert_tag 'select', :attributes => {:name => 'issue[fixed_version_id]'}
|
||||
assert_tag 'input', :attributes => {:name => 'issue[parent_issue_id]'}
|
||||
assert_tag 'input', :attributes => {:name => 'issue[start_date]'}
|
||||
assert_tag 'input', :attributes => {:name => 'issue[due_date]'}
|
||||
assert_tag 'select', :attributes => {:name => 'issue[done_ratio]'}
|
||||
assert_tag 'input', :attributes => { :name => 'issue[custom_field_values][2]', :value => 'Default string' }
|
||||
assert_tag 'input', :attributes => {:name => 'issue[watcher_user_ids][]'}
|
||||
|
||||
# Be sure we don't display inactive IssuePriorities
|
||||
assert ! IssuePriority.find(15).active?
|
||||
@@ -864,6 +964,32 @@ class IssuesControllerTest < ActionController::TestCase
|
||||
:parent => {:tag => 'select', :attributes => {:id => 'issue_priority_id'} }
|
||||
end
|
||||
|
||||
def test_get_new_with_minimal_permissions
|
||||
Role.find(1).update_attribute :permissions, [:add_issues]
|
||||
Workflow.delete_all :role_id => 1
|
||||
|
||||
@request.session[:user_id] = 2
|
||||
get :new, :project_id => 1, :tracker_id => 1
|
||||
assert_response :success
|
||||
assert_template 'new'
|
||||
|
||||
assert_no_tag 'input', :attributes => {:name => 'issue[is_private]'}
|
||||
assert_tag 'select', :attributes => {:name => 'issue[tracker_id]'}
|
||||
assert_tag 'input', :attributes => {:name => 'issue[subject]'}
|
||||
assert_tag 'textarea', :attributes => {:name => 'issue[description]'}
|
||||
assert_tag 'select', :attributes => {:name => 'issue[status_id]'}
|
||||
assert_tag 'select', :attributes => {:name => 'issue[priority_id]'}
|
||||
assert_tag 'select', :attributes => {:name => 'issue[assigned_to_id]'}
|
||||
assert_tag 'select', :attributes => {:name => 'issue[category_id]'}
|
||||
assert_tag 'select', :attributes => {:name => 'issue[fixed_version_id]'}
|
||||
assert_no_tag 'input', :attributes => {:name => 'issue[parent_issue_id]'}
|
||||
assert_tag 'input', :attributes => {:name => 'issue[start_date]'}
|
||||
assert_tag 'input', :attributes => {:name => 'issue[due_date]'}
|
||||
assert_tag 'select', :attributes => {:name => 'issue[done_ratio]'}
|
||||
assert_tag 'input', :attributes => { :name => 'issue[custom_field_values][2]', :value => 'Default string' }
|
||||
assert_no_tag 'input', :attributes => {:name => 'issue[watcher_user_ids][]'}
|
||||
end
|
||||
|
||||
def test_get_new_without_default_start_date_is_creation_date
|
||||
Setting.default_issue_start_date_to_creation_date = 0
|
||||
|
||||
|
||||
Reference in New Issue
Block a user