diff --git a/app/models/issue.rb b/app/models/issue.rb index ea6eb1307..cfc2a1bc0 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -80,6 +80,7 @@ class Issue < ActiveRecord::Base issue = arg.is_a?(Issue) ? arg : Issue.find(arg) self.attributes = issue.attributes.dup.except("id", "created_on", "updated_on") self.custom_values = issue.custom_values.collect {|v| v.clone} + self.status = issue.status self end diff --git a/test/unit/issue_test.rb b/test/unit/issue_test.rb index 84ccef601..3b0dd2697 100644 --- a/test/unit/issue_test.rb +++ b/test/unit/issue_test.rb @@ -178,6 +178,16 @@ class IssueTest < ActiveSupport::TestCase assert_equal orig.tracker, issue.tracker assert_equal orig.custom_values.first.value, issue.custom_values.first.value end + + def test_copy_should_copy_status + orig = Issue.find(8) + assert orig.status != IssueStatus.default + + issue = Issue.new.copy_from(orig) + assert issue.save + issue.reload + assert_equal orig.status, issue.status + end def test_should_close_duplicates # Create 3 issues diff --git a/test/unit/project_test.rb b/test/unit/project_test.rb index b4bb4cc11..93e4bbf22 100644 --- a/test/unit/project_test.rb +++ b/test/unit/project_test.rb @@ -406,6 +406,11 @@ class ProjectTest < ActiveSupport::TestCase end should "copy issues" do + @source_project.issues << Issue.generate!(:status_id => 5, + :subject => "copy issue status", + :tracker_id => 1, + :assigned_to_id => 2, + :project_id => @source_project.id) assert @project.valid? assert @project.issues.empty? assert @project.copy(@source_project) @@ -416,6 +421,11 @@ class ProjectTest < ActiveSupport::TestCase assert ! issue.assigned_to.blank? assert_equal @project, issue.project end + + copied_issue = @project.issues.first(:conditions => {:subject => "copy issue status"}) + assert copied_issue + assert copied_issue.status + assert_equal "Closed", copied_issue.status.name end should "change the new issues to use the copied version" do