Mercurial > hg > soundsoftware-site
diff test/functional/context_menus_controller_test.rb @ 1115:433d4f72a19b redmine-2.2
Update to Redmine SVN revision 11137 on 2.2-stable branch
author | Chris Cannam |
---|---|
date | Mon, 07 Jan 2013 12:01:42 +0000 |
parents | cbb26bc654de |
children | bb32da3bea34 3e4c3460b6ca |
line wrap: on
line diff
--- a/test/functional/context_menus_controller_test.rb Wed Jun 27 14:54:18 2012 +0100 +++ b/test/functional/context_menus_controller_test.rb Mon Jan 07 12:01:42 2013 +0000 @@ -7,14 +7,14 @@ :roles, :member_roles, :members, - :auth_sources, :enabled_modules, :workflows, :journals, :journal_details, :versions, :issues, :issue_statuses, :issue_categories, :users, - :enumerations + :enumerations, + :time_entries def test_context_menu_one_issue @request.session[:user_id] = 2 @@ -25,34 +25,29 @@ :attributes => { :href => '/issues/1/edit', :class => 'icon-edit' } assert_tag :tag => 'a', :content => 'Closed', - :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&issue%5Bstatus_id%5D=5', + :attributes => { :href => '/issues/bulk_update?ids%5B%5D=1&issue%5Bstatus_id%5D=5', :class => '' } assert_tag :tag => 'a', :content => 'Immediate', - :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&issue%5Bpriority_id%5D=8', + :attributes => { :href => '/issues/bulk_update?ids%5B%5D=1&issue%5Bpriority_id%5D=8', :class => '' } assert_no_tag :tag => 'a', :content => 'Inactive Priority' # Versions assert_tag :tag => 'a', :content => '2.0', - :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&issue%5Bfixed_version_id%5D=3', + :attributes => { :href => '/issues/bulk_update?ids%5B%5D=1&issue%5Bfixed_version_id%5D=3', :class => '' } assert_tag :tag => 'a', :content => 'eCookbook Subproject 1 - 2.0', - :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&issue%5Bfixed_version_id%5D=4', + :attributes => { :href => '/issues/bulk_update?ids%5B%5D=1&issue%5Bfixed_version_id%5D=4', :class => '' } assert_tag :tag => 'a', :content => 'Dave Lopper', - :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&issue%5Bassigned_to_id%5D=3', + :attributes => { :href => '/issues/bulk_update?ids%5B%5D=1&issue%5Bassigned_to_id%5D=3', :class => '' } - assert_tag :tag => 'a', :content => 'Duplicate', + assert_tag :tag => 'a', :content => 'Copy', :attributes => { :href => '/projects/ecookbook/issues/1/copy', - :class => 'icon-duplicate' } - assert_tag :tag => 'a', :content => 'Copy', - :attributes => { :href => '/issues/move/new?copy_options%5Bcopy%5D=t&ids%5B%5D=1', :class => 'icon-copy' } - assert_tag :tag => 'a', :content => 'Move', - :attributes => { :href => '/issues/move/new?ids%5B%5D=1', - :class => 'icon-move' } + assert_no_tag :tag => 'a', :content => 'Move' assert_tag :tag => 'a', :content => 'Delete', - :attributes => { :href => '/issues/destroy?ids%5B%5D=1', + :attributes => { :href => '/issues?ids%5B%5D=1', :class => 'icon-del' } end @@ -73,27 +68,25 @@ assert_not_nil assigns(:issues) assert_equal [1, 2], assigns(:issues).map(&:id).sort - ids = assigns(:issues).map(&:id).map {|i| "ids%5B%5D=#{i}"}.join('&') + ids = assigns(:issues).map(&:id).sort.map {|i| "ids%5B%5D=#{i}"}.join('&') assert_tag :tag => 'a', :content => 'Edit', :attributes => { :href => "/issues/bulk_edit?#{ids}", :class => 'icon-edit' } assert_tag :tag => 'a', :content => 'Closed', - :attributes => { :href => "/issues/bulk_edit?#{ids}&issue%5Bstatus_id%5D=5", + :attributes => { :href => "/issues/bulk_update?#{ids}&issue%5Bstatus_id%5D=5", :class => '' } assert_tag :tag => 'a', :content => 'Immediate', - :attributes => { :href => "/issues/bulk_edit?#{ids}&issue%5Bpriority_id%5D=8", + :attributes => { :href => "/issues/bulk_update?#{ids}&issue%5Bpriority_id%5D=8", :class => '' } assert_tag :tag => 'a', :content => 'Dave Lopper', - :attributes => { :href => "/issues/bulk_edit?#{ids}&issue%5Bassigned_to_id%5D=3", + :attributes => { :href => "/issues/bulk_update?#{ids}&issue%5Bassigned_to_id%5D=3", :class => '' } assert_tag :tag => 'a', :content => 'Copy', - :attributes => { :href => "/issues/move/new?copy_options%5Bcopy%5D=t&#{ids}", + :attributes => { :href => "/issues/bulk_edit?copy=1&#{ids}", :class => 'icon-copy' } - assert_tag :tag => 'a', :content => 'Move', - :attributes => { :href => "/issues/move/new?#{ids}", - :class => 'icon-move' } + assert_no_tag :tag => 'a', :content => 'Move' assert_tag :tag => 'a', :content => 'Delete', - :attributes => { :href => "/issues/destroy?#{ids}", + :attributes => { :href => "/issues?#{ids}", :class => 'icon-del' } end @@ -105,24 +98,143 @@ assert_not_nil assigns(:issues) assert_equal [1, 2, 6], assigns(:issues).map(&:id).sort - ids = assigns(:issues).map(&:id).map {|i| "ids%5B%5D=#{i}"}.join('&') + ids = assigns(:issues).map(&:id).sort.map {|i| "ids%5B%5D=#{i}"}.join('&') assert_tag :tag => 'a', :content => 'Edit', :attributes => { :href => "/issues/bulk_edit?#{ids}", :class => 'icon-edit' } assert_tag :tag => 'a', :content => 'Closed', - :attributes => { :href => "/issues/bulk_edit?#{ids}&issue%5Bstatus_id%5D=5", + :attributes => { :href => "/issues/bulk_update?#{ids}&issue%5Bstatus_id%5D=5", :class => '' } assert_tag :tag => 'a', :content => 'Immediate', - :attributes => { :href => "/issues/bulk_edit?#{ids}&issue%5Bpriority_id%5D=8", + :attributes => { :href => "/issues/bulk_update?#{ids}&issue%5Bpriority_id%5D=8", :class => '' } assert_tag :tag => 'a', :content => 'John Smith', - :attributes => { :href => "/issues/bulk_edit?#{ids}&issue%5Bassigned_to_id%5D=2", + :attributes => { :href => "/issues/bulk_update?#{ids}&issue%5Bassigned_to_id%5D=2", :class => '' } assert_tag :tag => 'a', :content => 'Delete', - :attributes => { :href => "/issues/destroy?#{ids}", + :attributes => { :href => "/issues?#{ids}", :class => 'icon-del' } end + def test_context_menu_should_include_list_custom_fields + field = IssueCustomField.create!(:name => 'List', :field_format => 'list', + :possible_values => ['Foo', 'Bar'], :is_for_all => true, :tracker_ids => [1, 2, 3]) + @request.session[:user_id] = 2 + get :issues, :ids => [1] + + assert_tag 'a', + :content => 'List', + :attributes => {:href => '#'}, + :sibling => {:tag => 'ul', :children => {:count => 3}} + + assert_tag 'a', + :content => 'Foo', + :attributes => {:href => "/issues/bulk_update?ids%5B%5D=1&issue%5Bcustom_field_values%5D%5B#{field.id}%5D=Foo"} + assert_tag 'a', + :content => 'none', + :attributes => {:href => "/issues/bulk_update?ids%5B%5D=1&issue%5Bcustom_field_values%5D%5B#{field.id}%5D="} + end + + def test_context_menu_should_not_include_null_value_for_required_custom_fields + field = IssueCustomField.create!(:name => 'List', :is_required => true, :field_format => 'list', + :possible_values => ['Foo', 'Bar'], :is_for_all => true, :tracker_ids => [1, 2, 3]) + @request.session[:user_id] = 2 + get :issues, :ids => [1, 2] + + assert_tag 'a', + :content => 'List', + :attributes => {:href => '#'}, + :sibling => {:tag => 'ul', :children => {:count => 2}} + end + + def test_context_menu_on_single_issue_should_select_current_custom_field_value + field = IssueCustomField.create!(:name => 'List', :field_format => 'list', + :possible_values => ['Foo', 'Bar'], :is_for_all => true, :tracker_ids => [1, 2, 3]) + issue = Issue.find(1) + issue.custom_field_values = {field.id => 'Bar'} + issue.save! + @request.session[:user_id] = 2 + get :issues, :ids => [1] + + assert_tag 'a', + :content => 'List', + :attributes => {:href => '#'}, + :sibling => {:tag => 'ul', :children => {:count => 3}} + assert_tag 'a', + :content => 'Bar', + :attributes => {:class => /icon-checked/} + end + + def test_context_menu_should_include_bool_custom_fields + field = IssueCustomField.create!(:name => 'Bool', :field_format => 'bool', + :is_for_all => true, :tracker_ids => [1, 2, 3]) + @request.session[:user_id] = 2 + get :issues, :ids => [1] + + assert_tag 'a', + :content => 'Bool', + :attributes => {:href => '#'}, + :sibling => {:tag => 'ul', :children => {:count => 3}} + + assert_tag 'a', + :content => 'Yes', + :attributes => {:href => "/issues/bulk_update?ids%5B%5D=1&issue%5Bcustom_field_values%5D%5B#{field.id}%5D=1"} + end + + def test_context_menu_should_include_user_custom_fields + field = IssueCustomField.create!(:name => 'User', :field_format => 'user', + :is_for_all => true, :tracker_ids => [1, 2, 3]) + @request.session[:user_id] = 2 + get :issues, :ids => [1] + + assert_tag 'a', + :content => 'User', + :attributes => {:href => '#'}, + :sibling => {:tag => 'ul', :children => {:count => Project.find(1).members.count + 1}} + + assert_tag 'a', + :content => 'John Smith', + :attributes => {:href => "/issues/bulk_update?ids%5B%5D=1&issue%5Bcustom_field_values%5D%5B#{field.id}%5D=2"} + end + + def test_context_menu_should_include_version_custom_fields + field = IssueCustomField.create!(:name => 'Version', :field_format => 'version', :is_for_all => true, :tracker_ids => [1, 2, 3]) + @request.session[:user_id] = 2 + get :issues, :ids => [1] + + assert_tag 'a', + :content => 'Version', + :attributes => {:href => '#'}, + :sibling => {:tag => 'ul', :children => {:count => Project.find(1).shared_versions.count + 1}} + + assert_tag 'a', + :content => '2.0', + :attributes => {:href => "/issues/bulk_update?ids%5B%5D=1&issue%5Bcustom_field_values%5D%5B#{field.id}%5D=3"} + end + + def test_context_menu_by_assignable_user_should_include_assigned_to_me_link + @request.session[:user_id] = 2 + get :issues, :ids => [1] + assert_response :success + assert_template 'context_menu' + + assert_tag :tag => 'a', :content => / me /, + :attributes => { :href => '/issues/bulk_update?ids%5B%5D=1&issue%5Bassigned_to_id%5D=2', + :class => '' } + end + + def test_context_menu_should_propose_shared_versions_for_issues_from_different_projects + @request.session[:user_id] = 2 + version = Version.create!(:name => 'Shared', :sharing => 'system', :project_id => 1) + + get :issues, :ids => [1, 4] + assert_response :success + assert_template 'context_menu' + + assert_include version, assigns(:versions) + assert_tag :tag => 'a', :content => 'eCookbook - Shared' + end + def test_context_menu_issue_visibility get :issues, :ids => [1, 4] assert_response :success