annotate test/functional/context_menus_controller_test.rb @ 1469:c77ab1edff6b bug_563

Close obsolete branch bug_563
author Chris Cannam
date Wed, 23 Jan 2013 14:12:47 +0000
parents 5e80956cc792
children bb32da3bea34
rev   line source
Chris@119 1 require File.expand_path('../../test_helper', __FILE__)
Chris@14 2
Chris@14 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@14 18
Chris@14 19 def test_context_menu_one_issue
Chris@14 20 @request.session[:user_id] = 2
Chris@14 21 get :issues, :ids => [1]
Chris@14 22 assert_response :success
Chris@14 23 assert_template 'context_menu'
Chris@14 24 assert_tag :tag => 'a', :content => 'Edit',
Chris@14 25 :attributes => { :href => '/issues/1/edit',
Chris@14 26 :class => 'icon-edit' }
Chris@14 27 assert_tag :tag => 'a', :content => 'Closed',
chris@22 28 :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&amp;issue%5Bstatus_id%5D=5',
Chris@14 29 :class => '' }
Chris@14 30 assert_tag :tag => 'a', :content => 'Immediate',
Chris@14 31 :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&amp;issue%5Bpriority_id%5D=8',
Chris@14 32 :class => '' }
Chris@909 33 assert_no_tag :tag => 'a', :content => 'Inactive Priority'
Chris@14 34 # Versions
Chris@14 35 assert_tag :tag => 'a', :content => '2.0',
Chris@14 36 :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&amp;issue%5Bfixed_version_id%5D=3',
Chris@14 37 :class => '' }
Chris@14 38 assert_tag :tag => 'a', :content => 'eCookbook Subproject 1 - 2.0',
Chris@14 39 :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&amp;issue%5Bfixed_version_id%5D=4',
Chris@14 40 :class => '' }
Chris@14 41
Chris@14 42 assert_tag :tag => 'a', :content => 'Dave Lopper',
Chris@14 43 :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&amp;issue%5Bassigned_to_id%5D=3',
Chris@14 44 :class => '' }
Chris@14 45 assert_tag :tag => 'a', :content => 'Duplicate',
Chris@14 46 :attributes => { :href => '/projects/ecookbook/issues/1/copy',
Chris@14 47 :class => 'icon-duplicate' }
Chris@14 48 assert_tag :tag => 'a', :content => 'Copy',
Chris@14 49 :attributes => { :href => '/issues/move/new?copy_options%5Bcopy%5D=t&amp;ids%5B%5D=1',
Chris@14 50 :class => 'icon-copy' }
Chris@14 51 assert_tag :tag => 'a', :content => 'Move',
Chris@14 52 :attributes => { :href => '/issues/move/new?ids%5B%5D=1',
Chris@14 53 :class => 'icon-move' }
Chris@14 54 assert_tag :tag => 'a', :content => 'Delete',
Chris@14 55 :attributes => { :href => '/issues/destroy?ids%5B%5D=1',
Chris@14 56 :class => 'icon-del' }
Chris@14 57 end
Chris@14 58
Chris@14 59 def test_context_menu_one_issue_by_anonymous
Chris@14 60 get :issues, :ids => [1]
Chris@14 61 assert_response :success
Chris@14 62 assert_template 'context_menu'
Chris@14 63 assert_tag :tag => 'a', :content => 'Delete',
Chris@14 64 :attributes => { :href => '#',
Chris@14 65 :class => 'icon-del disabled' }
Chris@14 66 end
Chris@909 67
Chris@14 68 def test_context_menu_multiple_issues_of_same_project
Chris@14 69 @request.session[:user_id] = 2
Chris@14 70 get :issues, :ids => [1, 2]
Chris@14 71 assert_response :success
Chris@14 72 assert_template 'context_menu'
Chris@119 73 assert_not_nil assigns(:issues)
Chris@119 74 assert_equal [1, 2], assigns(:issues).map(&:id).sort
Chris@909 75
Chris@119 76 ids = assigns(:issues).map(&:id).map {|i| "ids%5B%5D=#{i}"}.join('&amp;')
Chris@14 77 assert_tag :tag => 'a', :content => 'Edit',
Chris@119 78 :attributes => { :href => "/issues/bulk_edit?#{ids}",
Chris@14 79 :class => 'icon-edit' }
chris@22 80 assert_tag :tag => 'a', :content => 'Closed',
Chris@119 81 :attributes => { :href => "/issues/bulk_edit?#{ids}&amp;issue%5Bstatus_id%5D=5",
chris@22 82 :class => '' }
Chris@14 83 assert_tag :tag => 'a', :content => 'Immediate',
Chris@119 84 :attributes => { :href => "/issues/bulk_edit?#{ids}&amp;issue%5Bpriority_id%5D=8",
Chris@14 85 :class => '' }
Chris@14 86 assert_tag :tag => 'a', :content => 'Dave Lopper',
Chris@119 87 :attributes => { :href => "/issues/bulk_edit?#{ids}&amp;issue%5Bassigned_to_id%5D=3",
Chris@14 88 :class => '' }
Chris@14 89 assert_tag :tag => 'a', :content => 'Copy',
Chris@119 90 :attributes => { :href => "/issues/move/new?copy_options%5Bcopy%5D=t&amp;#{ids}",
Chris@14 91 :class => 'icon-copy' }
Chris@14 92 assert_tag :tag => 'a', :content => 'Move',
Chris@119 93 :attributes => { :href => "/issues/move/new?#{ids}",
Chris@14 94 :class => 'icon-move' }
Chris@14 95 assert_tag :tag => 'a', :content => 'Delete',
Chris@119 96 :attributes => { :href => "/issues/destroy?#{ids}",
Chris@14 97 :class => 'icon-del' }
Chris@14 98 end
Chris@14 99
chris@37 100 def test_context_menu_multiple_issues_of_different_projects
Chris@14 101 @request.session[:user_id] = 2
chris@37 102 get :issues, :ids => [1, 2, 6]
Chris@14 103 assert_response :success
Chris@14 104 assert_template 'context_menu'
Chris@119 105 assert_not_nil assigns(:issues)
Chris@119 106 assert_equal [1, 2, 6], assigns(:issues).map(&:id).sort
Chris@909 107
Chris@119 108 ids = assigns(:issues).map(&:id).map {|i| "ids%5B%5D=#{i}"}.join('&amp;')
chris@37 109 assert_tag :tag => 'a', :content => 'Edit',
chris@37 110 :attributes => { :href => "/issues/bulk_edit?#{ids}",
chris@37 111 :class => 'icon-edit' }
chris@37 112 assert_tag :tag => 'a', :content => 'Closed',
chris@37 113 :attributes => { :href => "/issues/bulk_edit?#{ids}&amp;issue%5Bstatus_id%5D=5",
chris@37 114 :class => '' }
chris@37 115 assert_tag :tag => 'a', :content => 'Immediate',
chris@37 116 :attributes => { :href => "/issues/bulk_edit?#{ids}&amp;issue%5Bpriority_id%5D=8",
chris@37 117 :class => '' }
chris@37 118 assert_tag :tag => 'a', :content => 'John Smith',
chris@37 119 :attributes => { :href => "/issues/bulk_edit?#{ids}&amp;issue%5Bassigned_to_id%5D=2",
chris@37 120 :class => '' }
Chris@14 121 assert_tag :tag => 'a', :content => 'Delete',
chris@37 122 :attributes => { :href => "/issues/destroy?#{ids}",
chris@37 123 :class => 'icon-del' }
Chris@14 124 end
Chris@909 125
Chris@119 126 def test_context_menu_issue_visibility
Chris@119 127 get :issues, :ids => [1, 4]
Chris@119 128 assert_response :success
Chris@119 129 assert_template 'context_menu'
Chris@119 130 assert_equal [1], assigns(:issues).collect(&:id)
Chris@119 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@14 151 end