Mercurial > hg > soundsoftware-site
view test/functional/context_menus_controller_test.rb @ 1082:997f6d7738f7 bug_531
In repo controller entry action, show the page for the file even if it's binary (so user still has access to history etc links). This makes it possible to use the entry action as the default when a file is clicked on
author | Chris Cannam <chris.cannam@soundsoftware.ac.uk> |
---|---|
date | Thu, 22 Nov 2012 18:04:17 +0000 |
parents | 5e80956cc792 |
children | bb32da3bea34 |
line wrap: on
line source
require File.expand_path('../../test_helper', __FILE__) class ContextMenusControllerTest < ActionController::TestCase fixtures :projects, :trackers, :projects_trackers, :roles, :member_roles, :members, :auth_sources, :enabled_modules, :workflows, :journals, :journal_details, :versions, :issues, :issue_statuses, :issue_categories, :users, :enumerations 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', :attributes => { :href => '/issues/bulk_edit?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', :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', :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', :class => '' } assert_tag :tag => 'a', :content => 'Dave Lopper', :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&issue%5Bassigned_to_id%5D=3', :class => '' } assert_tag :tag => 'a', :content => 'Duplicate', :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_tag :tag => 'a', :content => 'Delete', :attributes => { :href => '/issues/destroy?ids%5B%5D=1', :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 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' 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('&') 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", :class => '' } assert_tag :tag => 'a', :content => 'Immediate', :attributes => { :href => "/issues/bulk_edit?#{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", :class => '' } assert_tag :tag => 'a', :content => 'Copy', :attributes => { :href => "/issues/move/new?copy_options%5Bcopy%5D=t&#{ids}", :class => 'icon-copy' } assert_tag :tag => 'a', :content => 'Move', :attributes => { :href => "/issues/move/new?#{ids}", :class => 'icon-move' } assert_tag :tag => 'a', :content => 'Delete', :attributes => { :href => "/issues/destroy?#{ids}", :class => 'icon-del' } end def test_context_menu_multiple_issues_of_different_projects @request.session[:user_id] = 2 get :issues, :ids => [1, 2, 6] assert_response :success assert_template 'context_menu' 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('&') 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", :class => '' } assert_tag :tag => 'a', :content => 'Immediate', :attributes => { :href => "/issues/bulk_edit?#{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", :class => '' } assert_tag :tag => 'a', :content => 'Delete', :attributes => { :href => "/issues/destroy?#{ids}", :class => 'icon-del' } end 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 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 end