context_menus_controller_test.rb
148 lines
| 7.0 KiB
| text/x-ruby
|
RubyLexer
|
r4395 | require File.expand_path('../../test_helper', __FILE__) | ||
|
r3892 | |||
class ContextMenusControllerTest < ActionController::TestCase | ||||
|
r7369 | fixtures :projects, | ||
:trackers, | ||||
:projects_trackers, | ||||
:roles, | ||||
:member_roles, | ||||
:members, | ||||
:auth_sources, | ||||
:enabled_modules, | ||||
:workflows, | ||||
:journals, :journal_details, | ||||
:versions, | ||||
:issues, :issue_statuses, :issue_categories, | ||||
:users, | ||||
|
r7898 | :enumerations, | ||
:time_entries | ||||
|
r3892 | |||
def test_context_menu_one_issue | ||||
@request.session[:user_id] = 2 | ||||
get :issues, :ids => [1] | ||||
assert_response :success | ||||
assert_template 'context_menu' | ||||
assert_tag :tag => 'a', :content => 'Edit', | ||||
:attributes => { :href => '/issues/1/edit', | ||||
:class => 'icon-edit' } | ||||
assert_tag :tag => 'a', :content => 'Closed', | ||||
|
r8091 | :attributes => { :href => '/issues/bulk_update?ids%5B%5D=1&issue%5Bstatus_id%5D=5', | ||
|
r3892 | :class => '' } | ||
assert_tag :tag => 'a', :content => 'Immediate', | ||||
|
r8091 | :attributes => { :href => '/issues/bulk_update?ids%5B%5D=1&issue%5Bpriority_id%5D=8', | ||
|
r3892 | :class => '' } | ||
|
r5950 | assert_no_tag :tag => 'a', :content => 'Inactive Priority' | ||
|
r3892 | # Versions | ||
assert_tag :tag => 'a', :content => '2.0', | ||||
|
r8091 | :attributes => { :href => '/issues/bulk_update?ids%5B%5D=1&issue%5Bfixed_version_id%5D=3', | ||
|
r3892 | :class => '' } | ||
assert_tag :tag => 'a', :content => 'eCookbook Subproject 1 - 2.0', | ||||
|
r8091 | :attributes => { :href => '/issues/bulk_update?ids%5B%5D=1&issue%5Bfixed_version_id%5D=4', | ||
|
r3892 | :class => '' } | ||
assert_tag :tag => 'a', :content => 'Dave Lopper', | ||||
|
r8091 | :attributes => { :href => '/issues/bulk_update?ids%5B%5D=1&issue%5Bassigned_to_id%5D=3', | ||
|
r3892 | :class => '' } | ||
assert_tag :tag => 'a', :content => 'Duplicate', | ||||
:attributes => { :href => '/projects/ecookbook/issues/1/copy', | ||||
:class => 'icon-duplicate' } | ||||
assert_tag :tag => 'a', :content => 'Copy', | ||||
|
r8418 | :attributes => { :href => '/issues/bulk_edit?copy=1&ids%5B%5D=1', | ||
|
r3892 | :class => 'icon-copy' } | ||
|
r8413 | assert_no_tag :tag => 'a', :content => 'Move' | ||
|
r3892 | assert_tag :tag => 'a', :content => 'Delete', | ||
|
r8035 | :attributes => { :href => '/issues?ids%5B%5D=1', | ||
|
r3892 | :class => 'icon-del' } | ||
end | ||||
def test_context_menu_one_issue_by_anonymous | ||||
get :issues, :ids => [1] | ||||
assert_response :success | ||||
assert_template 'context_menu' | ||||
assert_tag :tag => 'a', :content => 'Delete', | ||||
:attributes => { :href => '#', | ||||
:class => 'icon-del disabled' } | ||||
end | ||||
|
r6700 | |||
|
r3892 | def test_context_menu_multiple_issues_of_same_project | ||
@request.session[:user_id] = 2 | ||||
get :issues, :ids => [1, 2] | ||||
assert_response :success | ||||
assert_template 'context_menu' | ||||
|
r4553 | assert_not_nil assigns(:issues) | ||
assert_equal [1, 2], assigns(:issues).map(&:id).sort | ||||
|
r6700 | |||
|
r4553 | ids = assigns(:issues).map(&:id).map {|i| "ids%5B%5D=#{i}"}.join('&') | ||
|
r3892 | assert_tag :tag => 'a', :content => 'Edit', | ||
|
r4553 | :attributes => { :href => "/issues/bulk_edit?#{ids}", | ||
|
r3892 | :class => 'icon-edit' } | ||
|
r3941 | assert_tag :tag => 'a', :content => 'Closed', | ||
|
r8091 | :attributes => { :href => "/issues/bulk_update?#{ids}&issue%5Bstatus_id%5D=5", | ||
|
r3941 | :class => '' } | ||
|
r3892 | assert_tag :tag => 'a', :content => 'Immediate', | ||
|
r8091 | :attributes => { :href => "/issues/bulk_update?#{ids}&issue%5Bpriority_id%5D=8", | ||
|
r3892 | :class => '' } | ||
assert_tag :tag => 'a', :content => 'Dave Lopper', | ||||
|
r8091 | :attributes => { :href => "/issues/bulk_update?#{ids}&issue%5Bassigned_to_id%5D=3", | ||
|
r3892 | :class => '' } | ||
assert_tag :tag => 'a', :content => 'Copy', | ||||
|
r8418 | :attributes => { :href => "/issues/bulk_edit?copy=1&#{ids}", | ||
|
r3892 | :class => 'icon-copy' } | ||
|
r8417 | assert_no_tag :tag => 'a', :content => 'Move' | ||
|
r3892 | assert_tag :tag => 'a', :content => 'Delete', | ||
|
r8035 | :attributes => { :href => "/issues?#{ids}", | ||
|
r3892 | :class => 'icon-del' } | ||
end | ||||
|
r4122 | def test_context_menu_multiple_issues_of_different_projects | ||
|
r3892 | @request.session[:user_id] = 2 | ||
|
r4122 | get :issues, :ids => [1, 2, 6] | ||
|
r3892 | assert_response :success | ||
assert_template 'context_menu' | ||||
|
r4553 | assert_not_nil assigns(:issues) | ||
assert_equal [1, 2, 6], assigns(:issues).map(&:id).sort | ||||
|
r6700 | |||
|
r4553 | ids = assigns(:issues).map(&:id).map {|i| "ids%5B%5D=#{i}"}.join('&') | ||
|
r4128 | assert_tag :tag => 'a', :content => 'Edit', | ||
:attributes => { :href => "/issues/bulk_edit?#{ids}", | ||||
:class => 'icon-edit' } | ||||
assert_tag :tag => 'a', :content => 'Closed', | ||||
|
r8091 | :attributes => { :href => "/issues/bulk_update?#{ids}&issue%5Bstatus_id%5D=5", | ||
|
r4128 | :class => '' } | ||
assert_tag :tag => 'a', :content => 'Immediate', | ||||
|
r8091 | :attributes => { :href => "/issues/bulk_update?#{ids}&issue%5Bpriority_id%5D=8", | ||
|
r4128 | :class => '' } | ||
assert_tag :tag => 'a', :content => 'John Smith', | ||||
|
r8091 | :attributes => { :href => "/issues/bulk_update?#{ids}&issue%5Bassigned_to_id%5D=2", | ||
|
r4128 | :class => '' } | ||
|
r3892 | assert_tag :tag => 'a', :content => 'Delete', | ||
|
r8035 | :attributes => { :href => "/issues?#{ids}", | ||
|
r4122 | :class => 'icon-del' } | ||
|
r3892 | end | ||
|
r6700 | |||
|
r4466 | def test_context_menu_issue_visibility | ||
get :issues, :ids => [1, 4] | ||||
assert_response :success | ||||
assert_template 'context_menu' | ||||
assert_equal [1], assigns(:issues).collect(&:id) | ||||
end | ||||
|
r7802 | |||
def test_time_entries_context_menu | ||||
@request.session[:user_id] = 2 | ||||
get :time_entries, :ids => [1, 2] | ||||
assert_response :success | ||||
assert_template 'time_entries' | ||||
assert_tag 'a', :content => 'Edit' | ||||
assert_no_tag 'a', :content => 'Edit', :attributes => {:class => /disabled/} | ||||
end | ||||
def test_time_entries_context_menu_without_edit_permission | ||||
@request.session[:user_id] = 2 | ||||
Role.find_by_name('Manager').remove_permission! :edit_time_entries | ||||
get :time_entries, :ids => [1, 2] | ||||
assert_response :success | ||||
assert_template 'time_entries' | ||||
assert_tag 'a', :content => 'Edit', :attributes => {:class => /disabled/} | ||||
end | ||||
|
r3892 | end | ||