annotate .svn/pristine/63/63ab165c5d9aefdb49df1a8bc5d36c75c1c75e7e.svn-base @ 1519:afce8026aaeb redmine-2.4-integration

Merge from branch "live"
author Chris Cannam
date Tue, 09 Sep 2014 09:34:53 +0100
parents cbb26bc654de
children
rev   line source
Chris@909 1 require File.expand_path('../../test_helper', __FILE__)
Chris@909 2
Chris@909 3 class ContextMenusControllerTest < ActionController::TestCase
Chris@909 4 fixtures :projects,
Chris@909 5 :trackers,
Chris@909 6 :projects_trackers,
Chris@909 7 :roles,
Chris@909 8 :member_roles,
Chris@909 9 :members,
Chris@909 10 :auth_sources,
Chris@909 11 :enabled_modules,
Chris@909 12 :workflows,
Chris@909 13 :journals, :journal_details,
Chris@909 14 :versions,
Chris@909 15 :issues, :issue_statuses, :issue_categories,
Chris@909 16 :users,
Chris@909 17 :enumerations
Chris@909 18
Chris@909 19 def test_context_menu_one_issue
Chris@909 20 @request.session[:user_id] = 2
Chris@909 21 get :issues, :ids => [1]
Chris@909 22 assert_response :success
Chris@909 23 assert_template 'context_menu'
Chris@909 24 assert_tag :tag => 'a', :content => 'Edit',
Chris@909 25 :attributes => { :href => '/issues/1/edit',
Chris@909 26 :class => 'icon-edit' }
Chris@909 27 assert_tag :tag => 'a', :content => 'Closed',
Chris@909 28 :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&amp;issue%5Bstatus_id%5D=5',
Chris@909 29 :class => '' }
Chris@909 30 assert_tag :tag => 'a', :content => 'Immediate',
Chris@909 31 :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&amp;issue%5Bpriority_id%5D=8',
Chris@909 32 :class => '' }
Chris@909 33 assert_no_tag :tag => 'a', :content => 'Inactive Priority'
Chris@909 34 # Versions
Chris@909 35 assert_tag :tag => 'a', :content => '2.0',
Chris@909 36 :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&amp;issue%5Bfixed_version_id%5D=3',
Chris@909 37 :class => '' }
Chris@909 38 assert_tag :tag => 'a', :content => 'eCookbook Subproject 1 - 2.0',
Chris@909 39 :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&amp;issue%5Bfixed_version_id%5D=4',
Chris@909 40 :class => '' }
Chris@909 41
Chris@909 42 assert_tag :tag => 'a', :content => 'Dave Lopper',
Chris@909 43 :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&amp;issue%5Bassigned_to_id%5D=3',
Chris@909 44 :class => '' }
Chris@909 45 assert_tag :tag => 'a', :content => 'Duplicate',
Chris@909 46 :attributes => { :href => '/projects/ecookbook/issues/1/copy',
Chris@909 47 :class => 'icon-duplicate' }
Chris@909 48 assert_tag :tag => 'a', :content => 'Copy',
Chris@909 49 :attributes => { :href => '/issues/move/new?copy_options%5Bcopy%5D=t&amp;ids%5B%5D=1',
Chris@909 50 :class => 'icon-copy' }
Chris@909 51 assert_tag :tag => 'a', :content => 'Move',
Chris@909 52 :attributes => { :href => '/issues/move/new?ids%5B%5D=1',
Chris@909 53 :class => 'icon-move' }
Chris@909 54 assert_tag :tag => 'a', :content => 'Delete',
Chris@909 55 :attributes => { :href => '/issues/destroy?ids%5B%5D=1',
Chris@909 56 :class => 'icon-del' }
Chris@909 57 end
Chris@909 58
Chris@909 59 def test_context_menu_one_issue_by_anonymous
Chris@909 60 get :issues, :ids => [1]
Chris@909 61 assert_response :success
Chris@909 62 assert_template 'context_menu'
Chris@909 63 assert_tag :tag => 'a', :content => 'Delete',
Chris@909 64 :attributes => { :href => '#',
Chris@909 65 :class => 'icon-del disabled' }
Chris@909 66 end
Chris@909 67
Chris@909 68 def test_context_menu_multiple_issues_of_same_project
Chris@909 69 @request.session[:user_id] = 2
Chris@909 70 get :issues, :ids => [1, 2]
Chris@909 71 assert_response :success
Chris@909 72 assert_template 'context_menu'
Chris@909 73 assert_not_nil assigns(:issues)
Chris@909 74 assert_equal [1, 2], assigns(:issues).map(&:id).sort
Chris@909 75
Chris@909 76 ids = assigns(:issues).map(&:id).map {|i| "ids%5B%5D=#{i}"}.join('&amp;')
Chris@909 77 assert_tag :tag => 'a', :content => 'Edit',
Chris@909 78 :attributes => { :href => "/issues/bulk_edit?#{ids}",
Chris@909 79 :class => 'icon-edit' }
Chris@909 80 assert_tag :tag => 'a', :content => 'Closed',
Chris@909 81 :attributes => { :href => "/issues/bulk_edit?#{ids}&amp;issue%5Bstatus_id%5D=5",
Chris@909 82 :class => '' }
Chris@909 83 assert_tag :tag => 'a', :content => 'Immediate',
Chris@909 84 :attributes => { :href => "/issues/bulk_edit?#{ids}&amp;issue%5Bpriority_id%5D=8",
Chris@909 85 :class => '' }
Chris@909 86 assert_tag :tag => 'a', :content => 'Dave Lopper',
Chris@909 87 :attributes => { :href => "/issues/bulk_edit?#{ids}&amp;issue%5Bassigned_to_id%5D=3",
Chris@909 88 :class => '' }
Chris@909 89 assert_tag :tag => 'a', :content => 'Copy',
Chris@909 90 :attributes => { :href => "/issues/move/new?copy_options%5Bcopy%5D=t&amp;#{ids}",
Chris@909 91 :class => 'icon-copy' }
Chris@909 92 assert_tag :tag => 'a', :content => 'Move',
Chris@909 93 :attributes => { :href => "/issues/move/new?#{ids}",
Chris@909 94 :class => 'icon-move' }
Chris@909 95 assert_tag :tag => 'a', :content => 'Delete',
Chris@909 96 :attributes => { :href => "/issues/destroy?#{ids}",
Chris@909 97 :class => 'icon-del' }
Chris@909 98 end
Chris@909 99
Chris@909 100 def test_context_menu_multiple_issues_of_different_projects
Chris@909 101 @request.session[:user_id] = 2
Chris@909 102 get :issues, :ids => [1, 2, 6]
Chris@909 103 assert_response :success
Chris@909 104 assert_template 'context_menu'
Chris@909 105 assert_not_nil assigns(:issues)
Chris@909 106 assert_equal [1, 2, 6], assigns(:issues).map(&:id).sort
Chris@909 107
Chris@909 108 ids = assigns(:issues).map(&:id).map {|i| "ids%5B%5D=#{i}"}.join('&amp;')
Chris@909 109 assert_tag :tag => 'a', :content => 'Edit',
Chris@909 110 :attributes => { :href => "/issues/bulk_edit?#{ids}",
Chris@909 111 :class => 'icon-edit' }
Chris@909 112 assert_tag :tag => 'a', :content => 'Closed',
Chris@909 113 :attributes => { :href => "/issues/bulk_edit?#{ids}&amp;issue%5Bstatus_id%5D=5",
Chris@909 114 :class => '' }
Chris@909 115 assert_tag :tag => 'a', :content => 'Immediate',
Chris@909 116 :attributes => { :href => "/issues/bulk_edit?#{ids}&amp;issue%5Bpriority_id%5D=8",
Chris@909 117 :class => '' }
Chris@909 118 assert_tag :tag => 'a', :content => 'John Smith',
Chris@909 119 :attributes => { :href => "/issues/bulk_edit?#{ids}&amp;issue%5Bassigned_to_id%5D=2",
Chris@909 120 :class => '' }
Chris@909 121 assert_tag :tag => 'a', :content => 'Delete',
Chris@909 122 :attributes => { :href => "/issues/destroy?#{ids}",
Chris@909 123 :class => 'icon-del' }
Chris@909 124 end
Chris@909 125
Chris@909 126 def test_context_menu_issue_visibility
Chris@909 127 get :issues, :ids => [1, 4]
Chris@909 128 assert_response :success
Chris@909 129 assert_template 'context_menu'
Chris@909 130 assert_equal [1], assigns(:issues).collect(&:id)
Chris@909 131 end
Chris@909 132
Chris@909 133 def test_time_entries_context_menu
Chris@909 134 @request.session[:user_id] = 2
Chris@909 135 get :time_entries, :ids => [1, 2]
Chris@909 136 assert_response :success
Chris@909 137 assert_template 'time_entries'
Chris@909 138 assert_tag 'a', :content => 'Edit'
Chris@909 139 assert_no_tag 'a', :content => 'Edit', :attributes => {:class => /disabled/}
Chris@909 140 end
Chris@909 141
Chris@909 142 def test_time_entries_context_menu_without_edit_permission
Chris@909 143 @request.session[:user_id] = 2
Chris@909 144 Role.find_by_name('Manager').remove_permission! :edit_time_entries
Chris@909 145
Chris@909 146 get :time_entries, :ids => [1, 2]
Chris@909 147 assert_response :success
Chris@909 148 assert_template 'time_entries'
Chris@909 149 assert_tag 'a', :content => 'Edit', :attributes => {:class => /disabled/}
Chris@909 150 end
Chris@909 151 end