Merged r10865 and r10866 from trunk (#12431).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/2.1-stable@10873 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
e3958ef577
commit
bb4c530ba2
|
@ -186,7 +186,7 @@ module CollectiveIdea #:nodoc:
|
||||||
end
|
end
|
||||||
|
|
||||||
# Find root node(s)
|
# Find root node(s)
|
||||||
root_nodes = where("#{quoted_parent_column_name} IS NULL").order("#{quoted_left_column_name}, #{quoted_right_column_name}, id").each do |root_node|
|
root_nodes = where("#{quoted_parent_column_name} IS NULL").order(acts_as_nested_set_options[:order]).each do |root_node|
|
||||||
# setup index for this scope
|
# setup index for this scope
|
||||||
indices[scope.call(root_node)] ||= 0
|
indices[scope.call(root_node)] ||= 0
|
||||||
set_left_and_rights.call(root_node)
|
set_left_and_rights.call(root_node)
|
||||||
|
|
|
@ -28,17 +28,17 @@ class ProjectNestedSetTest < ActiveSupport::TestCase
|
||||||
@a2 = Project.create!(:name => 'A2', :identifier => 'projecta2')
|
@a2 = Project.create!(:name => 'A2', :identifier => 'projecta2')
|
||||||
@a2.set_parent!(@a)
|
@a2.set_parent!(@a)
|
||||||
|
|
||||||
|
@c = Project.create!(:name => 'C', :identifier => 'projectc')
|
||||||
|
@c1 = Project.create!(:name => 'C1', :identifier => 'projectc1')
|
||||||
|
@c1.set_parent!(@c)
|
||||||
|
|
||||||
@b = Project.create!(:name => 'B', :identifier => 'projectb')
|
@b = Project.create!(:name => 'B', :identifier => 'projectb')
|
||||||
|
@b2 = Project.create!(:name => 'B2', :identifier => 'projectb2')
|
||||||
|
@b2.set_parent!(@b)
|
||||||
@b1 = Project.create!(:name => 'B1', :identifier => 'projectb1')
|
@b1 = Project.create!(:name => 'B1', :identifier => 'projectb1')
|
||||||
@b1.set_parent!(@b)
|
@b1.set_parent!(@b)
|
||||||
@b11 = Project.create!(:name => 'B11', :identifier => 'projectb11')
|
@b11 = Project.create!(:name => 'B11', :identifier => 'projectb11')
|
||||||
@b11.set_parent!(@b1)
|
@b11.set_parent!(@b1)
|
||||||
@b2 = Project.create!(:name => 'B2', :identifier => 'projectb2')
|
|
||||||
@b2.set_parent!(@b)
|
|
||||||
|
|
||||||
@c = Project.create!(:name => 'C', :identifier => 'projectc')
|
|
||||||
@c1 = Project.create!(:name => 'C1', :identifier => 'projectc1')
|
|
||||||
@c1.set_parent!(@c)
|
|
||||||
|
|
||||||
@a, @a1, @a2, @b, @b1, @b11, @b2, @c, @c1 = *(Project.all.sort_by(&:name))
|
@a, @a1, @a2, @b, @b1, @b11, @b2, @c, @c1 = *(Project.all.sort_by(&:name))
|
||||||
end
|
end
|
||||||
|
@ -47,6 +47,13 @@ class ProjectNestedSetTest < ActiveSupport::TestCase
|
||||||
assert_valid_nested_set
|
assert_valid_nested_set
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_rebuild_should_build_valid_tree
|
||||||
|
Project.update_all "lft = NULL, rgt = NULL"
|
||||||
|
|
||||||
|
Project.rebuild!
|
||||||
|
assert_valid_nested_set
|
||||||
|
end
|
||||||
|
|
||||||
def test_moving_a_child_to_a_different_parent_should_keep_valid_tree
|
def test_moving_a_child_to_a_different_parent_should_keep_valid_tree
|
||||||
assert_no_difference 'Project.count' do
|
assert_no_difference 'Project.count' do
|
||||||
Project.find_by_name('B1').set_parent!(Project.find_by_name('A2'))
|
Project.find_by_name('B1').set_parent!(Project.find_by_name('A2'))
|
||||||
|
|
Loading…
Reference in New Issue