603 |
603 |
str_big5 = "\xa4@\xa4\xeb".force_encoding('Big5')
|
604 |
604 |
issue = Issue.generate!(:subject => str_utf8)
|
605 |
605 |
|
606 |
|
get :index, :project_id => 1,
|
607 |
|
:f => ['subject'],
|
|
606 |
get :index, :project_id => 1,
|
|
607 |
:f => ['subject'],
|
608 |
608 |
:op => '=', :values => [str_utf8],
|
609 |
609 |
:format => 'csv'
|
610 |
610 |
assert_equal 'text/csv; header=present', @response.content_type
|
... | ... | |
622 |
622 |
str_utf8 = "\xe4\xbb\xa5\xe5\x86\x85".force_encoding('UTF-8')
|
623 |
623 |
issue = Issue.generate!(:subject => str_utf8)
|
624 |
624 |
|
625 |
|
get :index, :project_id => 1,
|
626 |
|
:f => ['subject'],
|
|
625 |
get :index, :project_id => 1,
|
|
626 |
:f => ['subject'],
|
627 |
627 |
:op => '=', :values => [str_utf8],
|
628 |
628 |
:c => ['status', 'subject'],
|
629 |
629 |
:format => 'csv',
|
... | ... | |
645 |
645 |
str1 = "test_index_csv_tw"
|
646 |
646 |
issue = Issue.generate!(:subject => str1, :estimated_hours => '1234.5')
|
647 |
647 |
|
648 |
|
get :index, :project_id => 1,
|
649 |
|
:f => ['subject'],
|
|
648 |
get :index, :project_id => 1,
|
|
649 |
:f => ['subject'],
|
650 |
650 |
:op => '=', :values => [str1],
|
651 |
651 |
:c => ['estimated_hours', 'subject'],
|
652 |
652 |
:format => 'csv',
|
... | ... | |
662 |
662 |
str1 = "test_index_csv_fr"
|
663 |
663 |
issue = Issue.generate!(:subject => str1, :estimated_hours => '1234.5')
|
664 |
664 |
|
665 |
|
get :index, :project_id => 1,
|
666 |
|
:f => ['subject'],
|
|
665 |
get :index, :project_id => 1,
|
|
666 |
:f => ['subject'],
|
667 |
667 |
:op => '=', :values => [str1],
|
668 |
668 |
:c => ['estimated_hours', 'subject'],
|
669 |
669 |
:format => 'csv',
|
... | ... | |
740 |
740 |
Setting.issue_list_default_columns = %w(subject author)
|
741 |
741 |
get :index, :sort => 'tracker'
|
742 |
742 |
end
|
743 |
|
|
|
743 |
|
744 |
744 |
def test_index_sort_by_assigned_to
|
745 |
745 |
get :index, :sort => 'assigned_to'
|
746 |
746 |
assert_response :success
|
... | ... | |
748 |
748 |
assert_equal assignees.sort, assignees
|
749 |
749 |
assert_select 'table.issues.sort-by-assigned-to.sort-asc'
|
750 |
750 |
end
|
751 |
|
|
|
751 |
|
752 |
752 |
def test_index_sort_by_assigned_to_desc
|
753 |
753 |
get :index, :sort => 'assigned_to:desc'
|
754 |
754 |
assert_response :success
|
... | ... | |
756 |
756 |
assert_equal assignees.sort.reverse, assignees
|
757 |
757 |
assert_select 'table.issues.sort-by-assigned-to.sort-desc'
|
758 |
758 |
end
|
759 |
|
|
|
759 |
|
760 |
760 |
def test_index_group_by_assigned_to
|
761 |
761 |
get :index, :group_by => 'assigned_to', :sort => 'priority'
|
762 |
762 |
assert_response :success
|
763 |
763 |
end
|
764 |
|
|
|
764 |
|
765 |
765 |
def test_index_sort_by_author
|
766 |
766 |
get :index, :sort => 'author'
|
767 |
767 |
assert_response :success
|
768 |
768 |
authors = assigns(:issues).collect(&:author)
|
769 |
769 |
assert_equal authors.sort, authors
|
770 |
770 |
end
|
771 |
|
|
|
771 |
|
772 |
772 |
def test_index_sort_by_author_desc
|
773 |
773 |
get :index, :sort => 'author:desc'
|
774 |
774 |
assert_response :success
|
775 |
775 |
authors = assigns(:issues).collect(&:author)
|
776 |
776 |
assert_equal authors.sort.reverse, authors
|
777 |
777 |
end
|
778 |
|
|
|
778 |
|
779 |
779 |
def test_index_group_by_author
|
780 |
780 |
get :index, :group_by => 'author', :sort => 'priority'
|
781 |
781 |
assert_response :success
|
782 |
782 |
end
|
783 |
|
|
|
783 |
|
784 |
784 |
def test_index_sort_by_spent_hours
|
785 |
785 |
get :index, :sort => 'spent_hours:desc'
|
786 |
786 |
assert_response :success
|
787 |
787 |
hours = assigns(:issues).collect(&:spent_hours)
|
788 |
788 |
assert_equal hours.sort.reverse, hours
|
789 |
789 |
end
|
790 |
|
|
|
790 |
|
791 |
791 |
def test_index_sort_by_total_spent_hours
|
792 |
792 |
get :index, :sort => 'total_spent_hours:desc'
|
793 |
793 |
assert_response :success
|
794 |
794 |
hours = assigns(:issues).collect(&:total_spent_hours)
|
795 |
795 |
assert_equal hours.sort.reverse, hours
|
796 |
796 |
end
|
797 |
|
|
|
797 |
|
798 |
798 |
def test_index_sort_by_total_estimated_hours
|
799 |
799 |
get :index, :sort => 'total_estimated_hours:desc'
|
800 |
800 |
assert_response :success
|
... | ... | |
1141 |
1141 |
def test_index_should_not_include_new_issue_tab_for_project_without_trackers
|
1142 |
1142 |
with_settings :new_item_menu_tab => '1' do
|
1143 |
1143 |
Project.find(1).trackers.clear
|
1144 |
|
|
|
1144 |
|
1145 |
1145 |
@request.session[:user_id] = 2
|
1146 |
1146 |
get :index, :project_id => 1
|
1147 |
1147 |
assert_select '#main-menu a.new-issue', 0
|
... | ... | |
1153 |
1153 |
role = Role.find(1)
|
1154 |
1154 |
role.remove_permission! :add_issues
|
1155 |
1155 |
role.add_permission! :copy_issues
|
1156 |
|
|
|
1156 |
|
1157 |
1157 |
@request.session[:user_id] = 2
|
1158 |
1158 |
get :index, :project_id => 1
|
1159 |
1159 |
assert_select '#main-menu a.new-issue', 0
|
... | ... | |
1439 |
1439 |
|
1440 |
1440 |
def test_show_should_display_prev_next_links_with_query_and_sort_on_association
|
1441 |
1441 |
@request.session[:query] = {:filters => {'status_id' => {:values => [''], :operator => 'o'}}, :project_id => nil}
|
1442 |
|
|
|
1442 |
|
1443 |
1443 |
%w(project tracker status priority author assigned_to category fixed_version).each do |assoc_sort|
|
1444 |
1444 |
@request.session['issues_index_sort'] = assoc_sort
|
1445 |
1445 |
|
... | ... | |
1684 |
1684 |
end
|
1685 |
1685 |
|
1686 |
1686 |
def test_show_export_to_pdf
|
1687 |
|
issue = Issue.find(3)
|
|
1687 |
issue = Issue.find(3)
|
1688 |
1688 |
assert issue.relations.select{|r| r.other_issue(issue).visible?}.present?
|
1689 |
1689 |
get :show, :id => 3, :format => 'pdf'
|
1690 |
1690 |
assert_response :success
|
... | ... | |
2152 |
2152 |
get :new, :project_id => 'invalid'
|
2153 |
2153 |
assert_response 404
|
2154 |
2154 |
end
|
2155 |
|
|
|
2155 |
|
2156 |
2156 |
def test_new_with_parent_id_should_only_propose_valid_trackers
|
2157 |
2157 |
@request.session[:user_id] = 2
|
2158 |
2158 |
t = Tracker.find(3)
|
... | ... | |
2704 |
2704 |
:custom_field_values => {'2' => 'Value for field 2'}}
|
2705 |
2705 |
end
|
2706 |
2706 |
assert_redirected_to :controller => 'issues', :action => 'show', :id => Issue.last.id
|
2707 |
|
|
|
2707 |
|
2708 |
2708 |
assert_equal 1, ActionMailer::Base.deliveries.size
|
2709 |
2709 |
end
|
2710 |
2710 |
end
|
... | ... | |
2874 |
2874 |
get :new, :project_id => 1
|
2875 |
2875 |
assert_response :success
|
2876 |
2876 |
assert_template 'new'
|
2877 |
|
|
|
2877 |
|
2878 |
2878 |
issue = assigns(:issue)
|
2879 |
2879 |
assert_not_nil issue.default_status
|
2880 |
2880 |
|
... | ... | |
3297 |
3297 |
def test_get_edit_should_display_the_time_entry_form_with_log_time_permission
|
3298 |
3298 |
@request.session[:user_id] = 2
|
3299 |
3299 |
Role.find_by_name('Manager').update_attribute :permissions, [:view_issues, :edit_issues, :log_time]
|
3300 |
|
|
|
3300 |
|
3301 |
3301 |
get :edit, :id => 1
|
3302 |
3302 |
assert_select 'input[name=?]', 'time_entry[hours]'
|
3303 |
3303 |
end
|
... | ... | |
3305 |
3305 |
def test_get_edit_should_not_display_the_time_entry_form_without_log_time_permission
|
3306 |
3306 |
@request.session[:user_id] = 2
|
3307 |
3307 |
Role.find_by_name('Manager').remove_permission! :log_time
|
3308 |
|
|
|
3308 |
|
3309 |
3309 |
get :edit, :id => 1
|
3310 |
3310 |
assert_select 'input[name=?]', 'time_entry[hours]', 0
|
3311 |
3311 |
end
|
... | ... | |
3926 |
3926 |
assert_response :redirect
|
3927 |
3927 |
assert_redirected_to :controller => 'issues', :action => 'show', :id => issue.id
|
3928 |
3928 |
end
|
3929 |
|
|
|
3929 |
|
3930 |
3930 |
def test_put_update_should_redirect_with_previous_and_next_issue_ids_params
|
3931 |
3931 |
@request.session[:user_id] = 2
|
3932 |
3932 |
|
... | ... | |
3981 |
3981 |
|
3982 |
3982 |
assert_select 'select[name=?]', 'issue[project_id]'
|
3983 |
3983 |
assert_select 'input[name=?]', 'issue[parent_issue_id]'
|
3984 |
|
|
|
3984 |
|
3985 |
3985 |
# Project specific custom field, date type
|
3986 |
3986 |
field = CustomField.find(9)
|
3987 |
3987 |
assert !field.is_for_all?
|
3988 |
3988 |
assert_equal 'date', field.field_format
|
3989 |
3989 |
assert_select 'input[name=?]', 'issue[custom_field_values][9]'
|
3990 |
|
|
|
3990 |
|
3991 |
3991 |
# System wide custom field
|
3992 |
3992 |
assert CustomField.find(1).is_for_all?
|
3993 |
3993 |
assert_select 'select[name=?]', 'issue[custom_field_values][1]'
|
3994 |
|
|
|
3994 |
|
3995 |
3995 |
# Be sure we don't display inactive IssuePriorities
|
3996 |
3996 |
assert ! IssuePriority.find(15).active?
|
3997 |
3997 |
assert_select 'select[name=?]', 'issue[priority_id]' do
|
... | ... | |
4155 |
4155 |
:issue => {:priority_id => '',
|
4156 |
4156 |
:assigned_to_id => group.id,
|
4157 |
4157 |
:custom_field_values => {'2' => ''}}
|
4158 |
|
|
|
4158 |
|
4159 |
4159 |
assert_response 302
|
4160 |
4160 |
assert_equal [group, group], Issue.where(:id => [1, 2]).collect {|i| i.assigned_to}
|
4161 |
4161 |
end
|
... | ... | |
4213 |
4213 |
end
|
4214 |
4214 |
end
|
4215 |
4215 |
|
|
4216 |
def test_bulk_update_with_author_change
|
|
4217 |
@request.session[:user_id] = 2
|
|
4218 |
Issue.where(id: [1, 2]).each {|i| i.update_attributes(assigned_to_id: 8)}
|
|
4219 |
post :bulk_update, :ids => [1, 2], :issue => {:project_id => '2', assigned_to_id: 'author'}
|
|
4220 |
Issue.where(id: [1, 2]).each {|i| assert_equal 2, i.assigned_to_id}
|
|
4221 |
end
|
|
4222 |
|
|
4223 |
def test_bulk_update_with_different_author
|
|
4224 |
@request.session[:user_id] = 2
|
|
4225 |
ids = Project.find(2).issues.map(&:id)
|
|
4226 |
post :bulk_update, :ids => ids, :issue => {:project_id => '2', assigned_to_id: 'author'}
|
|
4227 |
Project.find(2).issues.each {|i| assert_equal i.author_id, i.assigned_to_id}
|
|
4228 |
end
|
|
4229 |
|
4216 |
4230 |
def test_bulk_update_project
|
4217 |
4231 |
@request.session[:user_id] = 2
|
4218 |
4232 |
post :bulk_update, :ids => [1, 2], :issue => {:project_id => '2'}
|
... | ... | |
4468 |
4482 |
assert_select 'option[value="2"]'
|
4469 |
4483 |
end
|
4470 |
4484 |
end
|
4471 |
|
|
|
4485 |
|
4472 |
4486 |
def test_bulk_copy_to_another_project
|
4473 |
4487 |
@request.session[:user_id] = 2
|
4474 |
4488 |
assert_difference 'Issue.count', 2 do
|
... | ... | |
4521 |
4535 |
:assigned_to_id => 3)
|
4522 |
4536 |
]
|
4523 |
4537 |
assert_difference 'Issue.count', issues.size do
|
4524 |
|
post :bulk_update, :ids => issues.map(&:id), :copy => '1',
|
|
4538 |
post :bulk_update, :ids => issues.map(&:id), :copy => '1',
|
4525 |
4539 |
:issue => {
|
4526 |
4540 |
:project_id => '', :tracker_id => '', :assigned_to_id => '',
|
4527 |
4541 |
:status_id => '', :start_date => '', :due_date => ''
|
... | ... | |
4553 |
4567 |
@request.session[:user_id] = 2
|
4554 |
4568 |
assert_difference 'Issue.count', 2 do
|
4555 |
4569 |
assert_no_difference 'Project.find(1).issues.count' do
|
4556 |
|
post :bulk_update, :ids => [1, 2], :copy => '1',
|
|
4570 |
post :bulk_update, :ids => [1, 2], :copy => '1',
|
4557 |
4571 |
:issue => {
|
4558 |
4572 |
:project_id => '2', :tracker_id => '', :assigned_to_id => '2',
|
4559 |
4573 |
:status_id => '1', :start_date => '2009-12-01', :due_date => '2009-12-31'
|