##// END OF EJS Templates
Replace Date.today with User.current.today (#22320)....
Replace Date.today with User.current.today (#22320). Depending on the offset between a user's configured timezone and the server timezone, Date.today may be more or less often wrong from the user's perspective, leading to things like issues marked as overdue too early or too late, or yesterday / tomorrow being displayed / selected where 'today' is intended. A test case illustrating the problem with Issue#overdue? is included Patch by Jens Kraemer. git-svn-id: http://svn.redmine.org/redmine/trunk@15379 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r14957:39ff11ba06a7
r14997:ed50d42210ea
Show More
roles_controller_test.rb
208 lines | 6.6 KiB | text/x-ruby | RubyLexer
/ test / functional / roles_controller_test.rb
Toshi MARUYAMA
remove trailing white-spaces from test/functional/roles_controller_test.rb....
r6486 # Redmine - project management software
Jean-Philippe Lang
Updates copyright for 2016....
r14856 # Copyright (C) 2006-2016 Jean-Philippe Lang
Jean-Philippe Lang
Workflow copy:...
r1237 #
# 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/roles_controller_test.rb....
r6486 #
Jean-Philippe Lang
Workflow copy:...
r1237 # 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/roles_controller_test.rb....
r6486 #
Jean-Philippe Lang
Workflow copy:...
r1237 # 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
Workflow copy:...
r1237
Eric Davis
Upgraded to Rails 2.3.4 (#3597)...
r2773 class RolesControllerTest < ActionController::TestCase
Toshi MARUYAMA
Add missing fixture when running tests from scratch in functional RolesControllerTest....
r5490 fixtures :roles, :users, :members, :member_roles, :workflows, :trackers
Toshi MARUYAMA
remove trailing white-spaces from test/functional/roles_controller_test.rb....
r6486
Jean-Philippe Lang
Workflow copy:...
r1237 def setup
User.current = nil
@request.session[:user_id] = 1 # admin
end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/roles_controller_test.rb....
r6486
Jean-Philippe Lang
Resourcified roles....
r8025 def test_index
Jean-Philippe Lang
Add some tests on RolesController....
r1254 get :index
assert_response :success
Eric Davis
Refactor: Merged RolesController#list and #index...
r3321 assert_template 'index'
Jean-Philippe Lang
Add some tests on RolesController....
r1254
assert_not_nil assigns(:roles)
Jean-Philippe Lang
Merged rails-4.1 branch (#14534)....
r13100 assert_equal Role.order('builtin, position').to_a, assigns(:roles)
Jean-Philippe Lang
Add some tests on RolesController....
r1254
Jean-Philippe Lang
Replaced remaining #assert_tag with #assert_select....
r13242 assert_select 'a[href="/roles/1/edit"]', :text => 'Manager'
Jean-Philippe Lang
Add some tests on RolesController....
r1254 end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/roles_controller_test.rb....
r6486
Jean-Philippe Lang
Resourcified roles....
r8025 def test_new
Jean-Philippe Lang
Workflow copy:...
r1237 get :new
assert_response :success
assert_template 'new'
end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/roles_controller_test.rb....
r6486
Jean-Philippe Lang
Create role by copy (#9258)....
r10102 def test_new_with_copy
copy_from = Role.find(2)
get :new, :copy => copy_from.id.to_s
assert_response :success
assert_template 'new'
role = assigns(:role)
assert_equal copy_from.permissions, role.permissions
assert_select 'form' do
# blank name
Jean-Philippe Lang
Quote values in DOM selectors for Nokogiri compatibility....
r13237 assert_select 'input[name=?][value=""]', 'role[name]'
Jean-Philippe Lang
Create role by copy (#9258)....
r10102 # edit_project permission checked
assert_select 'input[type=checkbox][name=?][value=edit_project][checked=checked]', 'role[permissions][]'
# add_project permission not checked
assert_select 'input[type=checkbox][name=?][value=add_project]', 'role[permissions][]'
assert_select 'input[type=checkbox][name=?][value=add_project][checked=checked]', 'role[permissions][]', 0
# workflow copy selected
assert_select 'select[name=?]', 'copy_workflow_from' do
Jean-Philippe Lang
Quote values in DOM selectors for Nokogiri compatibility....
r13237 assert_select 'option[value="2"][selected=selected]'
Jean-Philippe Lang
Create role by copy (#9258)....
r10102 end
end
end
Jean-Philippe Lang
Resourcified roles....
r8025 def test_create_with_validaton_failure
post :create, :role => {:name => '',
Jean-Philippe Lang
Workflow copy:...
r1237 :permissions => ['add_issues', 'edit_issues', 'log_time', ''],
:assignable => '0'}
Toshi MARUYAMA
remove trailing white-spaces from test/functional/roles_controller_test.rb....
r6486
Jean-Philippe Lang
Workflow copy:...
r1237 assert_response :success
assert_template 'new'
Jean-Philippe Lang
Replaced remaining #assert_tag with #assert_select....
r13242 assert_select 'div#errorExplanation'
Jean-Philippe Lang
Workflow copy:...
r1237 end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/roles_controller_test.rb....
r6486
Jean-Philippe Lang
Resourcified roles....
r8025 def test_create_without_workflow_copy
post :create, :role => {:name => 'RoleWithoutWorkflowCopy',
Jean-Philippe Lang
Workflow copy:...
r1237 :permissions => ['add_issues', 'edit_issues', 'log_time', ''],
:assignable => '0'}
Toshi MARUYAMA
remove trailing white-spaces from test/functional/roles_controller_test.rb....
r6486
Jean-Philippe Lang
Adds leading slash to all assert_redirected_to arguments (#6887)....
r4293 assert_redirected_to '/roles'
Jean-Philippe Lang
Workflow copy:...
r1237 role = Role.find_by_name('RoleWithoutWorkflowCopy')
assert_not_nil role
assert_equal [:add_issues, :edit_issues, :log_time], role.permissions
assert !role.assignable?
end
Jean-Philippe Lang
Resourcified roles....
r8025 def test_create_with_workflow_copy
post :create, :role => {:name => 'RoleWithWorkflowCopy',
Jean-Philippe Lang
Workflow copy:...
r1237 :permissions => ['add_issues', 'edit_issues', 'log_time', ''],
:assignable => '0'},
:copy_workflow_from => '1'
Toshi MARUYAMA
remove trailing white-spaces from test/functional/roles_controller_test.rb....
r6486
Jean-Philippe Lang
Adds leading slash to all assert_redirected_to arguments (#6887)....
r4293 assert_redirected_to '/roles'
Jean-Philippe Lang
Workflow copy:...
r1237 role = Role.find_by_name('RoleWithWorkflowCopy')
assert_not_nil role
Jean-Philippe Lang
Workflow enhancement: editable and required fields configurable by role, tracker and status (#703, #3521)....
r9794 assert_equal Role.find(1).workflow_rules.size, role.workflow_rules.size
Jean-Philippe Lang
Workflow copy:...
r1237 end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/roles_controller_test.rb....
r6486
Jean-Philippe Lang
Resourcified roles....
r8025 def test_edit
Jean-Philippe Lang
Workflow copy:...
r1237 get :edit, :id => 1
assert_response :success
assert_template 'edit'
assert_equal Role.find(1), assigns(:role)
Jean-Philippe Lang
Anonymous users should always see public issues only (#11872)....
r10254 assert_select 'select[name=?]', 'role[issues_visibility]'
end
def test_edit_anonymous
get :edit, :id => Role.anonymous.id
assert_response :success
assert_template 'edit'
assert_select 'select[name=?]', 'role[issues_visibility]', 0
Jean-Philippe Lang
Workflow copy:...
r1237 end
Jean-Philippe Lang
Adds functional tests....
r8827 def test_edit_invalid_should_respond_with_404
get :edit, :id => 999
assert_response 404
end
Jean-Philippe Lang
Resourcified roles....
r8025 def test_update
put :update, :id => 1,
Jean-Philippe Lang
Workflow copy:...
r1237 :role => {:name => 'Manager',
:permissions => ['edit_project', ''],
:assignable => '0'}
Toshi MARUYAMA
remove trailing white-spaces from test/functional/roles_controller_test.rb....
r6486
Jean-Philippe Lang
Adds leading slash to all assert_redirected_to arguments (#6887)....
r4293 assert_redirected_to '/roles'
Jean-Philippe Lang
Workflow copy:...
r1237 role = Role.find(1)
assert_equal [:edit_project], role.permissions
end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/roles_controller_test.rb....
r6486
Jean-Philippe Lang
Resourcified roles....
r8025 def test_update_with_failure
put :update, :id => 1, :role => {:name => ''}
assert_response :success
assert_template 'edit'
end
Jean-Philippe Lang
Add some tests on RolesController....
r1254 def test_destroy
Jean-Philippe Lang
Resourcified roles....
r8025 r = Role.create!(:name => 'ToBeDestroyed', :permissions => [:view_wiki_pages])
Toshi MARUYAMA
remove trailing white-spaces from test/functional/roles_controller_test.rb....
r6486
Jean-Philippe Lang
Resourcified roles....
r8025 delete :destroy, :id => r
Jean-Philippe Lang
Adds leading slash to all assert_redirected_to arguments (#6887)....
r4293 assert_redirected_to '/roles'
Jean-Philippe Lang
Add some tests on RolesController....
r1254 assert_nil Role.find_by_id(r.id)
end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/roles_controller_test.rb....
r6486
Jean-Philippe Lang
Add some tests on RolesController....
r1254 def test_destroy_role_in_use
Jean-Philippe Lang
Resourcified roles....
r8025 delete :destroy, :id => 1
Jean-Philippe Lang
Adds leading slash to all assert_redirected_to arguments (#6887)....
r4293 assert_redirected_to '/roles'
Jean-Philippe Lang
Resourcified roles....
r8025 assert_equal 'This role is in use and cannot be deleted.', flash[:error]
Jean-Philippe Lang
Add some tests on RolesController....
r1254 assert_not_nil Role.find_by_id(1)
end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/roles_controller_test.rb....
r6486
Jean-Philippe Lang
Resourcified roles....
r8025 def test_get_permissions
get :permissions
Jean-Philippe Lang
Add some tests on RolesController....
r1254 assert_response :success
Jean-Philippe Lang
Resourcified roles....
r8025 assert_template 'permissions'
Toshi MARUYAMA
remove trailing white-spaces from test/functional/roles_controller_test.rb....
r6486
Jean-Philippe Lang
Add some tests on RolesController....
r1254 assert_not_nil assigns(:roles)
Jean-Philippe Lang
Merged rails-4.1 branch (#14534)....
r13100 assert_equal Role.order('builtin, position').to_a, assigns(:roles)
Toshi MARUYAMA
remove trailing white-spaces from test/functional/roles_controller_test.rb....
r6486
Jean-Philippe Lang
Replaced remaining #assert_tag with #assert_select....
r13242 assert_select 'input[name=?][type=checkbox][value=add_issues][checked=checked]', 'permissions[3][]'
assert_select 'input[name=?][type=checkbox][value=delete_issues]:not([checked])', 'permissions[3][]'
Jean-Philippe Lang
Add some tests on RolesController....
r1254 end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/roles_controller_test.rb....
r6486
Jean-Philippe Lang
Resourcified roles....
r8025 def test_post_permissions
post :permissions, :permissions => { '0' => '', '1' => ['edit_issues'], '3' => ['add_issues', 'delete_issues']}
Jean-Philippe Lang
Adds leading slash to all assert_redirected_to arguments (#6887)....
r4293 assert_redirected_to '/roles'
Toshi MARUYAMA
remove trailing white-spaces from test/functional/roles_controller_test.rb....
r6486
Jean-Philippe Lang
Add some tests on RolesController....
r1254 assert_equal [:edit_issues], Role.find(1).permissions
assert_equal [:add_issues, :delete_issues], Role.find(3).permissions
assert Role.find(2).permissions.empty?
end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/roles_controller_test.rb....
r6486
Jean-Philippe Lang
Add some tests on RolesController....
r1254 def test_clear_all_permissions
Jean-Philippe Lang
Resourcified roles....
r8025 post :permissions, :permissions => { '0' => '' }
Jean-Philippe Lang
Adds leading slash to all assert_redirected_to arguments (#6887)....
r4293 assert_redirected_to '/roles'
Jean-Philippe Lang
Add some tests on RolesController....
r1254 assert Role.find(1).permissions.empty?
end
Toshi MARUYAMA
remove trailing white-spaces from test/functional/roles_controller_test.rb....
r6486
Jean-Philippe Lang
Add some tests on RolesController....
r1254 def test_move_highest
Jean-Philippe Lang
Removes #move_to= (#12909)....
r14957 put :update, :id => 3, :role => {:position => 1}
Jean-Philippe Lang
Adds leading slash to all assert_redirected_to arguments (#6887)....
r4293 assert_redirected_to '/roles'
Jean-Philippe Lang
Add some tests on RolesController....
r1254 assert_equal 1, Role.find(3).position
end
def test_move_higher
position = Role.find(3).position
Jean-Philippe Lang
Removes #move_to= (#12909)....
r14957 put :update, :id => 3, :role => {:position => position - 1}
Jean-Philippe Lang
Adds leading slash to all assert_redirected_to arguments (#6887)....
r4293 assert_redirected_to '/roles'
Jean-Philippe Lang
Add some tests on RolesController....
r1254 assert_equal position - 1, Role.find(3).position
end
def test_move_lower
position = Role.find(2).position
Jean-Philippe Lang
Removes #move_to= (#12909)....
r14957 put :update, :id => 2, :role => {:position => position + 1}
Jean-Philippe Lang
Adds leading slash to all assert_redirected_to arguments (#6887)....
r4293 assert_redirected_to '/roles'
Jean-Philippe Lang
Add some tests on RolesController....
r1254 assert_equal position + 1, Role.find(2).position
end
def test_move_lowest
Jean-Philippe Lang
Removes #move_to= (#12909)....
r14957 put :update, :id => 2, :role => {:position => Role.givable.count}
Jean-Philippe Lang
Adds leading slash to all assert_redirected_to arguments (#6887)....
r4293 assert_redirected_to '/roles'
Jean-Philippe Lang
Replaces acts_as_list with an implementation that handles #position= (#12909)....
r14953 assert_equal Role.givable.count, Role.find(2).position
Jean-Philippe Lang
Add some tests on RolesController....
r1254 end
Jean-Philippe Lang
Workflow copy:...
r1237 end