@@ -340,8 +340,8 class Project < ActiveRecord::Base | |||
|
340 | 340 | " OR (#{Project.table_name}.status = #{Project::STATUS_ACTIVE} AND (" + |
|
341 | 341 | " #{Version.table_name}.sharing = 'system'" + |
|
342 | 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 |
|
|
344 |
" 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 = 'hierarchy')" + | |
|
345 | 345 | "))") |
|
346 | 346 | end |
|
347 | 347 |
@@ -317,6 +317,56 class ProjectTest < ActiveSupport::TestCase | |||
|
317 | 317 | |
|
318 | 318 | assert_equal [1,2], parent.rolled_up_trackers.collect(&:id) |
|
319 | 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 | 371 | def test_shared_versions |
|
322 | 372 | parent = Project.find(1) |
General Comments 0
You need to be logged in to leave comments.
Login now