summaryrefslogtreecommitdiffstats
path: root/test/unit/project_test.rb
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2009-12-07 19:28:47 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2009-12-07 19:28:47 +0000
commit5266e328c029405ab132f4fb99a5ba9bc1d6ba67 (patch)
tree77f877be19838d2da4196e3431e6c288beb608b8 /test/unit/project_test.rb
parent84bf891bb5bc71edfed3f5da75f4af98ddfc1a41 (diff)
downloadredmine-5266e328c029405ab132f4fb99a5ba9bc1d6ba67.tar.gz
redmine-5266e328c029405ab132f4fb99a5ba9bc1d6ba67.zip
Fixes Project#shared_versions for descendants sharing (#465).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3130 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'test/unit/project_test.rb')
-rw-r--r--test/unit/project_test.rb50
1 files changed, 50 insertions, 0 deletions
diff --git a/test/unit/project_test.rb b/test/unit/project_test.rb
index cbf9ce54f..748065ae7 100644
--- a/test/unit/project_test.rb
+++ b/test/unit/project_test.rb
@@ -317,6 +317,56 @@ class ProjectTest < ActiveSupport::TestCase
assert_equal [1,2], parent.rolled_up_trackers.collect(&:id)
end
+
+ def test_shared_versions_none_sharing
+ p = Project.find(5)
+ v = Version.create!(:name => 'none_sharing', :project => p, :sharing => 'none')
+ assert p.shared_versions.include?(v)
+ assert !p.children.first.shared_versions.include?(v)
+ assert !p.root.shared_versions.include?(v)
+ assert !p.siblings.first.shared_versions.include?(v)
+ assert !p.root.siblings.first.shared_versions.include?(v)
+ end
+
+ def test_shared_versions_descendants_sharing
+ p = Project.find(5)
+ v = Version.create!(:name => 'descendants_sharing', :project => p, :sharing => 'descendants')
+ assert p.shared_versions.include?(v)
+ assert p.children.first.shared_versions.include?(v)
+ assert !p.root.shared_versions.include?(v)
+ assert !p.siblings.first.shared_versions.include?(v)
+ assert !p.root.siblings.first.shared_versions.include?(v)
+ end
+
+ def test_shared_versions_hierarchy_sharing
+ p = Project.find(5)
+ v = Version.create!(:name => 'hierarchy_sharing', :project => p, :sharing => 'hierarchy')
+ assert p.shared_versions.include?(v)
+ assert p.children.first.shared_versions.include?(v)
+ assert p.root.shared_versions.include?(v)
+ assert !p.siblings.first.shared_versions.include?(v)
+ assert !p.root.siblings.first.shared_versions.include?(v)
+ end
+
+ def test_shared_versions_tree_sharing
+ p = Project.find(5)
+ v = Version.create!(:name => 'tree_sharing', :project => p, :sharing => 'tree')
+ assert p.shared_versions.include?(v)
+ assert p.children.first.shared_versions.include?(v)
+ assert p.root.shared_versions.include?(v)
+ assert p.siblings.first.shared_versions.include?(v)
+ assert !p.root.siblings.first.shared_versions.include?(v)
+ end
+
+ def test_shared_versions_system_sharing
+ p = Project.find(5)
+ v = Version.create!(:name => 'system_sharing', :project => p, :sharing => 'system')
+ assert p.shared_versions.include?(v)
+ assert p.children.first.shared_versions.include?(v)
+ assert p.root.shared_versions.include?(v)
+ assert p.siblings.first.shared_versions.include?(v)
+ assert p.root.siblings.first.shared_versions.include?(v)
+ end
def test_shared_versions
parent = Project.find(1)