To check out this repository please hg clone the following URL, or open the URL using EasyMercurial or your preferred Mercurial client.

Statistics Download as Zip
| Branch: | Tag: | Revision:

root / .svn / pristine / 63 / 63ab165c5d9aefdb49df1a8bc5d36c75c1c75e7e.svn-base @ 1297:0a574315af3e

History | View | Annotate | Download (7.29 KB)

1
require File.expand_path('../../test_helper', __FILE__)
2

    
3
class ContextMenusControllerTest < ActionController::TestCase
4
  fixtures :projects,
5
           :trackers,
6
           :projects_trackers,
7
           :roles,
8
           :member_roles,
9
           :members,
10
           :auth_sources,
11
           :enabled_modules,
12
           :workflows,
13
           :journals, :journal_details,
14
           :versions,
15
           :issues, :issue_statuses, :issue_categories,
16
           :users,
17
           :enumerations
18

    
19
  def test_context_menu_one_issue
20
    @request.session[:user_id] = 2
21
    get :issues, :ids => [1]
22
    assert_response :success
23
    assert_template 'context_menu'
24
    assert_tag :tag => 'a', :content => 'Edit',
25
                            :attributes => { :href => '/issues/1/edit',
26
                                             :class => 'icon-edit' }
27
    assert_tag :tag => 'a', :content => 'Closed',
28
                            :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&amp;issue%5Bstatus_id%5D=5',
29
                                             :class => '' }
30
    assert_tag :tag => 'a', :content => 'Immediate',
31
                            :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&amp;issue%5Bpriority_id%5D=8',
32
                                             :class => '' }
33
    assert_no_tag :tag => 'a', :content => 'Inactive Priority'
34
    # Versions
35
    assert_tag :tag => 'a', :content => '2.0',
36
                            :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&amp;issue%5Bfixed_version_id%5D=3',
37
                                             :class => '' }
38
    assert_tag :tag => 'a', :content => 'eCookbook Subproject 1 - 2.0',
39
                            :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&amp;issue%5Bfixed_version_id%5D=4',
40
                                             :class => '' }
41

    
42
    assert_tag :tag => 'a', :content => 'Dave Lopper',
43
                            :attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&amp;issue%5Bassigned_to_id%5D=3',
44
                                             :class => '' }
45
    assert_tag :tag => 'a', :content => 'Duplicate',
46
                            :attributes => { :href => '/projects/ecookbook/issues/1/copy',
47
                                             :class => 'icon-duplicate' }
48
    assert_tag :tag => 'a', :content => 'Copy',
49
                            :attributes => { :href => '/issues/move/new?copy_options%5Bcopy%5D=t&amp;ids%5B%5D=1',
50
                                             :class => 'icon-copy' }
51
    assert_tag :tag => 'a', :content => 'Move',
52
                            :attributes => { :href => '/issues/move/new?ids%5B%5D=1',
53
                                             :class => 'icon-move' }
54
    assert_tag :tag => 'a', :content => 'Delete',
55
                            :attributes => { :href => '/issues/destroy?ids%5B%5D=1',
56
                                             :class => 'icon-del' }
57
  end
58

    
59
  def test_context_menu_one_issue_by_anonymous
60
    get :issues, :ids => [1]
61
    assert_response :success
62
    assert_template 'context_menu'
63
    assert_tag :tag => 'a', :content => 'Delete',
64
                            :attributes => { :href => '#',
65
                                             :class => 'icon-del disabled' }
66
  end
67

    
68
  def test_context_menu_multiple_issues_of_same_project
69
    @request.session[:user_id] = 2
70
    get :issues, :ids => [1, 2]
71
    assert_response :success
72
    assert_template 'context_menu'
73
    assert_not_nil assigns(:issues)
74
    assert_equal [1, 2], assigns(:issues).map(&:id).sort
75

    
76
    ids = assigns(:issues).map(&:id).map {|i| "ids%5B%5D=#{i}"}.join('&amp;')
77
    assert_tag :tag => 'a', :content => 'Edit',
78
                            :attributes => { :href => "/issues/bulk_edit?#{ids}",
79
                                             :class => 'icon-edit' }
80
    assert_tag :tag => 'a', :content => 'Closed',
81
                            :attributes => { :href => "/issues/bulk_edit?#{ids}&amp;issue%5Bstatus_id%5D=5",
82
                                             :class => '' }
83
    assert_tag :tag => 'a', :content => 'Immediate',
84
                            :attributes => { :href => "/issues/bulk_edit?#{ids}&amp;issue%5Bpriority_id%5D=8",
85
                                             :class => '' }
86
    assert_tag :tag => 'a', :content => 'Dave Lopper',
87
                            :attributes => { :href => "/issues/bulk_edit?#{ids}&amp;issue%5Bassigned_to_id%5D=3",
88
                                             :class => '' }
89
    assert_tag :tag => 'a', :content => 'Copy',
90
                            :attributes => { :href => "/issues/move/new?copy_options%5Bcopy%5D=t&amp;#{ids}",
91
                                             :class => 'icon-copy' }
92
    assert_tag :tag => 'a', :content => 'Move',
93
                            :attributes => { :href => "/issues/move/new?#{ids}",
94
                                             :class => 'icon-move' }
95
    assert_tag :tag => 'a', :content => 'Delete',
96
                            :attributes => { :href => "/issues/destroy?#{ids}",
97
                                             :class => 'icon-del' }
98
  end
99

    
100
  def test_context_menu_multiple_issues_of_different_projects
101
    @request.session[:user_id] = 2
102
    get :issues, :ids => [1, 2, 6]
103
    assert_response :success
104
    assert_template 'context_menu'
105
    assert_not_nil assigns(:issues)
106
    assert_equal [1, 2, 6], assigns(:issues).map(&:id).sort
107

    
108
    ids = assigns(:issues).map(&:id).map {|i| "ids%5B%5D=#{i}"}.join('&amp;')
109
    assert_tag :tag => 'a', :content => 'Edit',
110
                            :attributes => { :href => "/issues/bulk_edit?#{ids}",
111
                                             :class => 'icon-edit' }
112
    assert_tag :tag => 'a', :content => 'Closed',
113
                            :attributes => { :href => "/issues/bulk_edit?#{ids}&amp;issue%5Bstatus_id%5D=5",
114
                                             :class => '' }
115
    assert_tag :tag => 'a', :content => 'Immediate',
116
                            :attributes => { :href => "/issues/bulk_edit?#{ids}&amp;issue%5Bpriority_id%5D=8",
117
                                             :class => '' }
118
    assert_tag :tag => 'a', :content => 'John Smith',
119
                            :attributes => { :href => "/issues/bulk_edit?#{ids}&amp;issue%5Bassigned_to_id%5D=2",
120
                                             :class => '' }
121
    assert_tag :tag => 'a', :content => 'Delete',
122
                            :attributes => { :href => "/issues/destroy?#{ids}",
123
                                             :class => 'icon-del' }
124
  end
125

    
126
  def test_context_menu_issue_visibility
127
    get :issues, :ids => [1, 4]
128
    assert_response :success
129
    assert_template 'context_menu'
130
    assert_equal [1], assigns(:issues).collect(&:id)
131
  end
132
  
133
  def test_time_entries_context_menu
134
    @request.session[:user_id] = 2
135
    get :time_entries, :ids => [1, 2]
136
    assert_response :success
137
    assert_template 'time_entries'
138
    assert_tag 'a', :content => 'Edit'
139
    assert_no_tag 'a', :content => 'Edit', :attributes => {:class => /disabled/}
140
  end
141
  
142
  def test_time_entries_context_menu_without_edit_permission
143
    @request.session[:user_id] = 2
144
    Role.find_by_name('Manager').remove_permission! :edit_time_entries
145
    
146
    get :time_entries, :ids => [1, 2]
147
    assert_response :success
148
    assert_template 'time_entries'
149
    assert_tag 'a', :content => 'Edit', :attributes => {:class => /disabled/}
150
  end
151
end