diff options
-rw-r--r-- | app/models/project.rb | 1 | ||||
-rw-r--r-- | test/object_helpers.rb | 8 | ||||
-rw-r--r-- | test/unit/project_copy_test.rb | 11 |
3 files changed, 20 insertions, 0 deletions
diff --git a/app/models/project.rb b/app/models/project.rb index 6ced34565..a146a344a 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -952,6 +952,7 @@ class Project < ActiveRecord::Base new_query.sort_criteria = query.sort_criteria if query.sort_criteria new_query.project = self new_query.user_id = query.user_id + new_query.role_ids = query.role_ids if query.visibility == IssueQuery::VISIBILITY_ROLES self.queries << new_query end end diff --git a/test/object_helpers.rb b/test/object_helpers.rb index 1f58baf9e..4e4a9fba3 100644 --- a/test/object_helpers.rb +++ b/test/object_helpers.rb @@ -178,6 +178,14 @@ module ObjectHelpers changeset.save! changeset end + + def Query.generate!(attributes={}) + query = new(attributes) + query.name = "Generated query" if query.name.blank? + query.user ||= User.find(1) + query.save! + query + end end module IssueObjectHelpers diff --git a/test/unit/project_copy_test.rb b/test/unit/project_copy_test.rb index 238417a2d..2f1f6ee59 100644 --- a/test/unit/project_copy_test.rb +++ b/test/unit/project_copy_test.rb @@ -222,6 +222,17 @@ class ProjectCopyTest < ActiveSupport::TestCase assert_equal @source_project.queries.map(&:user_id).sort, @project.queries.map(&:user_id).sort end + def test_copy_should_copy_queries_roles_visibility + source = Project.generate! + target = Project.new(:name => 'Copy Test', :identifier => 'copy-test') + IssueQuery.generate!(:project => source, :visibility => Query::VISIBILITY_ROLES, :roles => Role.where(:id => [1, 3]).to_a) + + assert target.copy(source) + assert_equal 1, target.queries.size + query = target.queries.first + assert_equal [1, 3], query.role_ids.sort + end + test "#copy should copy versions" do @source_project.versions << Version.generate! @source_project.versions << Version.generate! |