mirror of
https://github.com/redmine/redmine.git
synced 2026-02-01 20:30:11 +01:00
Merged r9404, r9405 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.4-stable@9411 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
@@ -3057,6 +3057,19 @@ class IssuesControllerTest < ActionController::TestCase
|
||||
assert_equal 'Failed to save 1 issue(s) on 2 selected: #2.', flash[:error]
|
||||
end
|
||||
|
||||
def test_get_bulk_copy
|
||||
@request.session[:user_id] = 2
|
||||
get :bulk_edit, :ids => [1, 2, 3], :copy => '1'
|
||||
assert_response :success
|
||||
assert_template 'bulk_edit'
|
||||
|
||||
issues = assigns(:issues)
|
||||
assert_not_nil issues
|
||||
assert_equal [1, 2, 3], issues.map(&:id).sort
|
||||
|
||||
assert_select 'input[name=copy_attachments]'
|
||||
end
|
||||
|
||||
def test_bulk_copy_to_another_project
|
||||
@request.session[:user_id] = 2
|
||||
assert_difference 'Issue.count', 2 do
|
||||
@@ -3065,27 +3078,41 @@ class IssuesControllerTest < ActionController::TestCase
|
||||
end
|
||||
end
|
||||
assert_redirected_to '/projects/ecookbook/issues'
|
||||
|
||||
copies = Issue.all(:order => 'id DESC', :limit => issues.size)
|
||||
copies.each do |copy|
|
||||
assert_equal 2, copy.project_id
|
||||
end
|
||||
end
|
||||
|
||||
def test_bulk_copy_should_allow_not_changing_the_issue_attributes
|
||||
@request.session[:user_id] = 2
|
||||
issue_before_move = Issue.find(1)
|
||||
assert_difference 'Issue.count', 1 do
|
||||
assert_no_difference 'Project.find(1).issues.count' do
|
||||
post :bulk_update, :ids => [1], :copy => '1',
|
||||
:issue => {
|
||||
:project_id => '2', :tracker_id => '', :assigned_to_id => '',
|
||||
:status_id => '', :start_date => '', :due_date => ''
|
||||
}
|
||||
end
|
||||
issues = [
|
||||
Issue.create!(:project_id => 1, :tracker_id => 1, :status_id => 1, :priority_id => 2, :subject => 'issue 1', :author_id => 1, :assigned_to_id => nil),
|
||||
Issue.create!(:project_id => 2, :tracker_id => 3, :status_id => 2, :priority_id => 1, :subject => 'issue 2', :author_id => 2, :assigned_to_id => 3)
|
||||
]
|
||||
|
||||
assert_difference 'Issue.count', issues.size do
|
||||
post :bulk_update, :ids => issues.map(&:id), :copy => '1',
|
||||
:issue => {
|
||||
:project_id => '', :tracker_id => '', :assigned_to_id => '',
|
||||
:status_id => '', :start_date => '', :due_date => ''
|
||||
}
|
||||
end
|
||||
|
||||
copies = Issue.all(:order => 'id DESC', :limit => issues.size)
|
||||
issues.each do |orig|
|
||||
copy = copies.detect {|c| c.subject == orig.subject}
|
||||
assert_not_nil copy
|
||||
assert_equal orig.project_id, copy.project_id
|
||||
assert_equal orig.tracker_id, copy.tracker_id
|
||||
assert_equal orig.status_id, copy.status_id
|
||||
assert_equal orig.assigned_to_id, copy.assigned_to_id
|
||||
assert_equal orig.priority_id, copy.priority_id
|
||||
end
|
||||
issue_after_move = Issue.first(:order => 'id desc', :conditions => {:project_id => 2})
|
||||
assert_equal issue_before_move.tracker_id, issue_after_move.tracker_id
|
||||
assert_equal issue_before_move.status_id, issue_after_move.status_id
|
||||
assert_equal issue_before_move.assigned_to_id, issue_after_move.assigned_to_id
|
||||
end
|
||||
|
||||
def test_bulk_copy_should_allow_changing_the_issue_attributes
|
||||
def test_bulk_copy_should_allow_changing_the_issue_attributes
|
||||
# Fixes random test failure with Mysql
|
||||
# where Issue.all(:limit => 2, :order => 'id desc', :conditions => {:project_id => 2})
|
||||
# doesn't return the expected results
|
||||
@@ -3097,7 +3124,7 @@ class IssuesControllerTest < ActionController::TestCase
|
||||
post :bulk_update, :ids => [1, 2], :copy => '1',
|
||||
:issue => {
|
||||
:project_id => '2', :tracker_id => '', :assigned_to_id => '4',
|
||||
:status_id => '3', :start_date => '2009-12-01', :due_date => '2009-12-31'
|
||||
:status_id => '1', :start_date => '2009-12-01', :due_date => '2009-12-31'
|
||||
}
|
||||
end
|
||||
end
|
||||
@@ -3107,7 +3134,7 @@ class IssuesControllerTest < ActionController::TestCase
|
||||
copied_issues.each do |issue|
|
||||
assert_equal 2, issue.project_id, "Project is incorrect"
|
||||
assert_equal 4, issue.assigned_to_id, "Assigned to is incorrect"
|
||||
assert_equal 3, issue.status_id, "Status is incorrect"
|
||||
assert_equal 1, issue.status_id, "Status is incorrect"
|
||||
assert_equal '2009-12-01', issue.start_date.to_s, "Start date is incorrect"
|
||||
assert_equal '2009-12-31', issue.due_date.to_s, "Due date is incorrect"
|
||||
end
|
||||
@@ -3131,6 +3158,36 @@ class IssuesControllerTest < ActionController::TestCase
|
||||
assert_equal 'Copying one issue', journal.notes
|
||||
end
|
||||
|
||||
def test_bulk_copy_should_allow_not_copying_the_attachments
|
||||
attachment_count = Issue.find(3).attachments.size
|
||||
assert attachment_count > 0
|
||||
@request.session[:user_id] = 2
|
||||
|
||||
assert_difference 'Issue.count', 1 do
|
||||
assert_no_difference 'Attachment.count' do
|
||||
post :bulk_update, :ids => [3], :copy => '1',
|
||||
:issue => {
|
||||
:project_id => ''
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def test_bulk_copy_should_allow_copying_the_attachments
|
||||
attachment_count = Issue.find(3).attachments.size
|
||||
assert attachment_count > 0
|
||||
@request.session[:user_id] = 2
|
||||
|
||||
assert_difference 'Issue.count', 1 do
|
||||
assert_difference 'Attachment.count', attachment_count do
|
||||
post :bulk_update, :ids => [3], :copy => '1', :copy_attachments => '1',
|
||||
:issue => {
|
||||
:project_id => ''
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def test_bulk_copy_to_another_project_should_follow_when_needed
|
||||
@request.session[:user_id] = 2
|
||||
post :bulk_update, :ids => [1], :copy => '1', :issue => {:project_id => 2}, :follow => '1'
|
||||
|
||||
Reference in New Issue
Block a user