@@ -340,8 +340,8 class Project < ActiveRecord::Base | |||||
340 | " OR (#{Project.table_name}.status = #{Project::STATUS_ACTIVE} AND (" + |
|
340 | " OR (#{Project.table_name}.status = #{Project::STATUS_ACTIVE} AND (" + | |
341 | " #{Version.table_name}.sharing = 'system'" + |
|
341 | " #{Version.table_name}.sharing = 'system'" + | |
342 | " OR (#{Project.table_name}.lft >= #{root.lft} AND #{Project.table_name}.rgt <= #{root.rgt} AND #{Version.table_name}.sharing = 'tree')" + |
|
342 | " OR (#{Project.table_name}.lft >= #{root.lft} AND #{Project.table_name}.rgt <= #{root.rgt} AND #{Version.table_name}.sharing = 'tree')" + | |
343 |
" OR (#{Project.table_name}.lft < #{lft} AND #{Project.table_name}.rgt > #{rgt} AND #{Version.table_name}.sharing |
|
343 | " OR (#{Project.table_name}.lft < #{lft} AND #{Project.table_name}.rgt > #{rgt} AND #{Version.table_name}.sharing IN ('hierarchy', 'descendants'))" + | |
344 |
" OR (#{Project.table_name}.lft > #{lft} AND #{Project.table_name}.rgt < #{rgt} AND #{Version.table_name}.sharing |
|
344 | " OR (#{Project.table_name}.lft > #{lft} AND #{Project.table_name}.rgt < #{rgt} AND #{Version.table_name}.sharing = 'hierarchy')" + | |
345 | "))") |
|
345 | "))") | |
346 | end |
|
346 | end | |
347 |
|
347 |
@@ -317,6 +317,56 class ProjectTest < ActiveSupport::TestCase | |||||
317 |
|
317 | |||
318 | assert_equal [1,2], parent.rolled_up_trackers.collect(&:id) |
|
318 | assert_equal [1,2], parent.rolled_up_trackers.collect(&:id) | |
319 | end |
|
319 | end | |
|
320 | ||||
|
321 | def test_shared_versions_none_sharing | |||
|
322 | p = Project.find(5) | |||
|
323 | v = Version.create!(:name => 'none_sharing', :project => p, :sharing => 'none') | |||
|
324 | assert p.shared_versions.include?(v) | |||
|
325 | assert !p.children.first.shared_versions.include?(v) | |||
|
326 | assert !p.root.shared_versions.include?(v) | |||
|
327 | assert !p.siblings.first.shared_versions.include?(v) | |||
|
328 | assert !p.root.siblings.first.shared_versions.include?(v) | |||
|
329 | end | |||
|
330 | ||||
|
331 | def test_shared_versions_descendants_sharing | |||
|
332 | p = Project.find(5) | |||
|
333 | v = Version.create!(:name => 'descendants_sharing', :project => p, :sharing => 'descendants') | |||
|
334 | assert p.shared_versions.include?(v) | |||
|
335 | assert p.children.first.shared_versions.include?(v) | |||
|
336 | assert !p.root.shared_versions.include?(v) | |||
|
337 | assert !p.siblings.first.shared_versions.include?(v) | |||
|
338 | assert !p.root.siblings.first.shared_versions.include?(v) | |||
|
339 | end | |||
|
340 | ||||
|
341 | def test_shared_versions_hierarchy_sharing | |||
|
342 | p = Project.find(5) | |||
|
343 | v = Version.create!(:name => 'hierarchy_sharing', :project => p, :sharing => 'hierarchy') | |||
|
344 | assert p.shared_versions.include?(v) | |||
|
345 | assert p.children.first.shared_versions.include?(v) | |||
|
346 | assert p.root.shared_versions.include?(v) | |||
|
347 | assert !p.siblings.first.shared_versions.include?(v) | |||
|
348 | assert !p.root.siblings.first.shared_versions.include?(v) | |||
|
349 | end | |||
|
350 | ||||
|
351 | def test_shared_versions_tree_sharing | |||
|
352 | p = Project.find(5) | |||
|
353 | v = Version.create!(:name => 'tree_sharing', :project => p, :sharing => 'tree') | |||
|
354 | assert p.shared_versions.include?(v) | |||
|
355 | assert p.children.first.shared_versions.include?(v) | |||
|
356 | assert p.root.shared_versions.include?(v) | |||
|
357 | assert p.siblings.first.shared_versions.include?(v) | |||
|
358 | assert !p.root.siblings.first.shared_versions.include?(v) | |||
|
359 | end | |||
|
360 | ||||
|
361 | def test_shared_versions_system_sharing | |||
|
362 | p = Project.find(5) | |||
|
363 | v = Version.create!(:name => 'system_sharing', :project => p, :sharing => 'system') | |||
|
364 | assert p.shared_versions.include?(v) | |||
|
365 | assert p.children.first.shared_versions.include?(v) | |||
|
366 | assert p.root.shared_versions.include?(v) | |||
|
367 | assert p.siblings.first.shared_versions.include?(v) | |||
|
368 | assert p.root.siblings.first.shared_versions.include?(v) | |||
|
369 | end | |||
320 |
|
370 | |||
321 | def test_shared_versions |
|
371 | def test_shared_versions | |
322 | parent = Project.find(1) |
|
372 | parent = Project.find(1) |
General Comments 0
You need to be logged in to leave comments.
Login now