child.wiki_id = wiki_id
child.redirect_existing_links = redirect_existing_links
unless child.save
- WikiPage.where(:id => child.id).update_all :parent_nil => nil
+ WikiPage.where(:id => child.id).update_all :parent_id => nil
end
end
end
assert_equal parent, child.parent
end
+ def test_move_parent_with_child_with_duplicate_name_should_not_move_child
+ parent = WikiPage.create!(:wiki_id => 1, :title => 'Parent')
+ child = WikiPage.create!(:wiki_id => 1, :title => 'Child', :parent_id => parent.id)
+ parent.reload
+ # page with the same name as the child in the target wiki
+ WikiPage.create!(:wiki_id => 2, :title => 'Child')
+
+ parent.wiki_id = 2
+ parent.save!
+
+ parent.reload
+ assert_equal 2, parent.wiki_id
+
+ child.reload
+ assert_equal 1, child.wiki_id
+ assert_nil child.parent_id
+ end
+
def test_destroy
page = WikiPage.find(1)
page.destroy