##// END OF EJS Templates
Speeds up rendering of the project list for users who belong to hundreds of projects....
Speeds up rendering of the project list for users who belong to hundreds of projects. git-svn-id: http://svn.redmine.org/redmine/trunk@16123 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r15342:29ddc82a11f3
r15741:f8df935dcada
Show More
trackers_controller_test.rb
243 lines | 7.3 KiB | text/x-ruby | RubyLexer
/ test / functional / trackers_controller_test.rb
Jean-Philippe Lang
Adds projects association on tracker form (#2578)....
r2333 # Redmine - project management software
Jean-Philippe Lang
Updates copyright for 2016....
r14856 # Copyright (C) 2006-2016 Jean-Philippe Lang
Jean-Philippe Lang
Adds projects association on tracker form (#2578)....
r2333 #
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
Toshi MARUYAMA
remove trailing white-spaces from test/functional/trackers_controller_test.rb....
r6503 #
Jean-Philippe Lang
Adds projects association on tracker form (#2578)....
r2333 # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
Toshi MARUYAMA
remove trailing white-spaces from test/functional/trackers_controller_test.rb....
r6503 #
Jean-Philippe Lang
Adds projects association on tracker form (#2578)....
r2333 # You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Jean-Baptiste Barth
Use absolute paths in test/**/* requires for Ruby 1.9.2 compatibility. #4050...
r4395 require File.expand_path('../../test_helper', __FILE__)
Jean-Philippe Lang
Adds projects association on tracker form (#2578)....
r2333
Jean-Philippe Lang
Adds our own class for controller tests....
r15279 class TrackersControllerTest < Redmine::ControllerTest
Jean-Philippe Lang
Default status per tracker (#5991)....
r13153 fixtures :trackers, :projects, :projects_trackers, :users, :issues, :custom_fields, :issue_statuses
Toshi MARUYAMA
remove trailing white-spaces from test/functional/trackers_controller_test.rb....
r6503
Jean-Philippe Lang
Adds projects association on tracker form (#2578)....
r2333 def setup
User.current = nil
@request.session[:user_id] = 1 # admin
end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/trackers_controller_test.rb....
r6503
Jean-Philippe Lang
Trackers controller refactoring....
r2462 def test_index
get :index
assert_response :success
Jean-Philippe Lang
Removes calls to #assert_template and #assigns in functional tests....
r15342 assert_select 'table.trackers'
Jean-Philippe Lang
Trackers controller refactoring....
r2462 end
Jean-Philippe Lang
Adds API response to /trackers to get the list of all available trackers (#7181)....
r7757
def test_index_by_anonymous_should_redirect_to_login_form
@request.session[:user_id] = nil
get :index
assert_redirected_to '/login?back_url=http%3A%2F%2Ftest.host%2Ftrackers'
end
def test_index_by_user_should_respond_with_406
@request.session[:user_id] = 2
get :index
assert_response 406
end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/trackers_controller_test.rb....
r6503
Jean-Philippe Lang
Resourcified trackers....
r7768 def test_new
Jean-Philippe Lang
Trackers controller refactoring....
r2462 get :new
assert_response :success
Jean-Philippe Lang
Removes calls to #assert_template and #assigns in functional tests....
r15342 assert_select 'input[name=?]', 'tracker[name]'
Jean-Philippe Lang
Trackers controller refactoring....
r2462 end
Jean-Philippe Lang
Resourcified trackers....
r7768 def test_create
assert_difference 'Tracker.count' do
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 post :create, :params => {
:tracker => {
:name => 'New tracker',
:default_status_id => 1,
:project_ids => ['1', '', ''],
:custom_field_ids => ['1', '6', '']
}
}
Jean-Philippe Lang
Resourcified trackers....
r7768 end
Eric Davis
Refactor: Merged TrackersController#list and #index...
r3323 assert_redirected_to :action => 'index'
Toshi MARUYAMA
Rails4: replace deprecated Relation#first with finder options at TrackersControllerTest...
r12368 tracker = Tracker.order('id DESC').first
Jean-Philippe Lang
Resourcified trackers....
r7768 assert_equal 'New tracker', tracker.name
Jean-Philippe Lang
Trackers controller refactoring....
r2462 assert_equal [1], tracker.project_ids.sort
Jean-Philippe Lang
Ability to disable standard fields on a per tracker basis (#1091)....
r9729 assert_equal Tracker::CORE_FIELDS, tracker.core_fields
Jean-Philippe Lang
Sort values for assertion....
r9004 assert_equal [1, 6], tracker.custom_field_ids.sort
Jean-Philippe Lang
Workflow enhancement: editable and required fields configurable by role, tracker and status (#703, #3521)....
r9794 assert_equal 0, tracker.workflow_rules.count
Jean-Philippe Lang
Trackers controller refactoring....
r2462 end
Jean-Philippe Lang
Default status per tracker (#5991)....
r13153 def test_create_with_disabled_core_fields
Jean-Philippe Lang
Ability to disable standard fields on a per tracker basis (#1091)....
r9729 assert_difference 'Tracker.count' do
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 post :create, :params => {
:tracker => {
:name => 'New tracker',
:default_status_id => 1,
:core_fields => ['assigned_to_id', 'fixed_version_id', '']
}
}
Jean-Philippe Lang
Ability to disable standard fields on a per tracker basis (#1091)....
r9729 end
assert_redirected_to :action => 'index'
Toshi MARUYAMA
Rails4: replace deprecated Relation#first with finder options at TrackersControllerTest...
r12368 tracker = Tracker.order('id DESC').first
Jean-Philippe Lang
Ability to disable standard fields on a per tracker basis (#1091)....
r9729 assert_equal 'New tracker', tracker.name
assert_equal %w(assigned_to_id fixed_version_id), tracker.core_fields
end
Jean-Philippe Lang
Resourcified trackers....
r7768 def test_create_new_with_workflow_copy
assert_difference 'Tracker.count' do
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 post :create, :params => {
:tracker => {
:name => 'New tracker',
:default_status_id => 1
},
:copy_workflow_from => 1
}
Jean-Philippe Lang
Resourcified trackers....
r7768 end
Eric Davis
Refactor: Merged TrackersController#list and #index...
r3323 assert_redirected_to :action => 'index'
Jean-Philippe Lang
Trackers controller refactoring....
r2462 tracker = Tracker.find_by_name('New tracker')
assert_equal 0, tracker.projects.count
Jean-Philippe Lang
Workflow enhancement: editable and required fields configurable by role, tracker and status (#703, #3521)....
r9794 assert_equal Tracker.find(1).workflow_rules.count, tracker.workflow_rules.count
Jean-Philippe Lang
Trackers controller refactoring....
r2462 end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/trackers_controller_test.rb....
r6503
Jean-Philippe Lang
Additional test for TrackersController....
r9307 def test_create_with_failure
Jean-Philippe Lang
Resourcified trackers....
r7768 assert_no_difference 'Tracker.count' do
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 post :create, :params => {
:tracker => {
:name => '',
:project_ids => ['1', '', ''],
:custom_field_ids => ['1', '6', '']
}
}
Jean-Philippe Lang
Resourcified trackers....
r7768 end
assert_response :success
Jean-Philippe Lang
Replaced "can't" with "cannot" in error messages....
r13399 assert_select_error /name cannot be blank/i
Jean-Philippe Lang
Resourcified trackers....
r7768 end
def test_edit
Jean-Philippe Lang
Adds projects association on tracker form (#2578)....
r2333 Tracker.find(1).project_ids = [1, 3]
Toshi MARUYAMA
remove trailing white-spaces from test/functional/trackers_controller_test.rb....
r6503
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 get :edit, :params => {:id => 1}
Jean-Philippe Lang
Adds projects association on tracker form (#2578)....
r2333 assert_response :success
Toshi MARUYAMA
remove trailing white-spaces from test/functional/trackers_controller_test.rb....
r6503
Jean-Philippe Lang
Replaced remaining #assert_tag with #assert_select....
r13242 assert_select 'input[name=?][value="1"][checked=checked]', 'tracker[project_ids][]'
assert_select 'input[name=?][value="2"]:not([checked])', 'tracker[project_ids][]'
Toshi MARUYAMA
remove trailing white-spaces from test/functional/trackers_controller_test.rb....
r6503
Jean-Philippe Lang
Replaced remaining #assert_tag with #assert_select....
r13242 assert_select 'input[name=?][value=""][type=hidden]', 'tracker[project_ids][]'
Jean-Philippe Lang
Adds projects association on tracker form (#2578)....
r2333 end
Jean-Philippe Lang
Ability to disable standard fields on a per tracker basis (#1091)....
r9729 def test_edit_should_check_core_fields
tracker = Tracker.find(1)
tracker.core_fields = %w(assigned_to_id fixed_version_id)
tracker.save!
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 get :edit, :params => {:id => 1}
Jean-Philippe Lang
Ability to disable standard fields on a per tracker basis (#1091)....
r9729 assert_response :success
assert_select 'input[name=?][value=assigned_to_id][checked=checked]', 'tracker[core_fields][]'
assert_select 'input[name=?][value=fixed_version_id][checked=checked]', 'tracker[core_fields][]'
assert_select 'input[name=?][value=category_id]', 'tracker[core_fields][]'
assert_select 'input[name=?][value=category_id][checked=checked]', 'tracker[core_fields][]', 0
Jean-Philippe Lang
Quote values in DOM selectors for Nokogiri compatibility....
r13237 assert_select 'input[name=?][value=""][type=hidden]', 'tracker[core_fields][]'
Jean-Philippe Lang
Ability to disable standard fields on a per tracker basis (#1091)....
r9729 end
Jean-Philippe Lang
Resourcified trackers....
r7768 def test_update
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 put :update, :params => {
:id => 1,
:tracker => {
:name => 'Renamed',
:project_ids => ['1', '2', '']
}
}
Eric Davis
Refactor: Merged TrackersController#list and #index...
r3323 assert_redirected_to :action => 'index'
Jean-Philippe Lang
Adds projects association on tracker form (#2578)....
r2333 assert_equal [1, 2], Tracker.find(1).project_ids.sort
end
Jean-Philippe Lang
Resourcified trackers....
r7768 def test_update_without_projects
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 put :update, :params => {
:id => 1,
:tracker => {
:name => 'Renamed',
:project_ids => ['']
}
}
Eric Davis
Refactor: Merged TrackersController#list and #index...
r3323 assert_redirected_to :action => 'index'
Jean-Philippe Lang
Adds projects association on tracker form (#2578)....
r2333 assert Tracker.find(1).project_ids.empty?
end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/trackers_controller_test.rb....
r6503
Jean-Philippe Lang
Ability to disable standard fields on a per tracker basis (#1091)....
r9729 def test_update_without_core_fields
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 put :update, :params => {
:id => 1,
:tracker => {
:name => 'Renamed',
:core_fields => ['']
}
}
Jean-Philippe Lang
Ability to disable standard fields on a per tracker basis (#1091)....
r9729 assert_redirected_to :action => 'index'
assert Tracker.find(1).core_fields.empty?
end
Jean-Philippe Lang
Additional test for TrackersController....
r9307 def test_update_with_failure
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 put :update, :params => {:id => 1, :tracker => { :name => '' }}
Jean-Philippe Lang
Additional test for TrackersController....
r9307 assert_response :success
Jean-Philippe Lang
Removes calls to #assert_template and #assigns in functional tests....
r15342
Jean-Philippe Lang
Replaced "can't" with "cannot" in error messages....
r13399 assert_select_error /name cannot be blank/i
Jean-Philippe Lang
Additional test for TrackersController....
r9307 end
Jean-Philippe Lang
Trackers controller refactoring....
r2462 def test_move_lower
tracker = Tracker.find_by_position(1)
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 put :update, :params => {:id => 1, :tracker => { :position => '2' }}
Jean-Philippe Lang
Trackers controller refactoring....
r2462 assert_equal 2, tracker.reload.position
end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/trackers_controller_test.rb....
r6503
Jean-Philippe Lang
Trackers controller refactoring....
r2462 def test_destroy
Jean-Philippe Lang
Default status per tracker (#5991)....
r13153 tracker = Tracker.generate!(:name => 'Destroyable')
Jean-Philippe Lang
Trackers controller refactoring....
r2462 assert_difference 'Tracker.count', -1 do
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 delete :destroy, :params => {:id => tracker.id}
Jean-Philippe Lang
Trackers controller refactoring....
r2462 end
Eric Davis
Refactor: Merged TrackersController#list and #index...
r3323 assert_redirected_to :action => 'index'
Jean-Philippe Lang
Trackers controller refactoring....
r2462 assert_nil flash[:error]
end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/trackers_controller_test.rb....
r6503
Jean-Philippe Lang
Trackers controller refactoring....
r2462 def test_destroy_tracker_in_use
assert_no_difference 'Tracker.count' do
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 delete :destroy, :params => {:id => 1}
Jean-Philippe Lang
Trackers controller refactoring....
r2462 end
Eric Davis
Refactor: Merged TrackersController#list and #index...
r3323 assert_redirected_to :action => 'index'
Jean-Philippe Lang
Trackers controller refactoring....
r2462 assert_not_nil flash[:error]
end
Jean-Philippe Lang
Adds a view for editing all trackers fields....
r10100
def test_get_fields
get :fields
assert_response :success
assert_select 'form' do
assert_select 'input[type=checkbox][name=?][value=assigned_to_id]', 'trackers[1][core_fields][]'
Jean-Philippe Lang
Quote values in DOM selectors for Nokogiri compatibility....
r13237 assert_select 'input[type=checkbox][name=?][value="2"]', 'trackers[1][custom_field_ids][]'
Jean-Philippe Lang
Adds a view for editing all trackers fields....
r10100
Jean-Philippe Lang
Quote values in DOM selectors for Nokogiri compatibility....
r13237 assert_select 'input[type=hidden][name=?][value=""]', 'trackers[1][core_fields][]'
assert_select 'input[type=hidden][name=?][value=""]', 'trackers[1][custom_field_ids][]'
Jean-Philippe Lang
Adds a view for editing all trackers fields....
r10100 end
end
def test_post_fields
Jean-Philippe Lang
Pass parameters with :params in controller tests....
r15284 post :fields, :params => {
:trackers => {
'1' => {'core_fields' => ['assigned_to_id', 'due_date', ''], 'custom_field_ids' => ['1', '2']},
'2' => {'core_fields' => [''], 'custom_field_ids' => ['']}
}
Jean-Philippe Lang
Adds a view for editing all trackers fields....
r10100 }
assert_redirected_to '/trackers/fields'
tracker = Tracker.find(1)
assert_equal %w(assigned_to_id due_date), tracker.core_fields
assert_equal [1, 2], tracker.custom_field_ids.sort
tracker = Tracker.find(2)
assert_equal [], tracker.core_fields
assert_equal [], tracker.custom_field_ids.sort
end
Jean-Philippe Lang
Adds projects association on tracker form (#2578)....
r2333 end