Fixed: error raised when copying project wiki with wiki module disabled (#13097).

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11332 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang 2013-02-07 19:24:57 +00:00
parent eece12ddfd
commit 2cd749955e
2 changed files with 12 additions and 1 deletions

View File

@ -772,7 +772,7 @@ class Project < ActiveRecord::Base
def copy_wiki(project) def copy_wiki(project)
# Check that the source project has a wiki first # Check that the source project has a wiki first
unless project.wiki.nil? unless project.wiki.nil?
self.wiki ||= Wiki.new wiki = self.wiki || Wiki.new
wiki.attributes = project.wiki.attributes.dup.except("id", "project_id") wiki.attributes = project.wiki.attributes.dup.except("id", "project_id")
wiki_pages_map = {} wiki_pages_map = {}
project.wiki.pages.each do |page| project.wiki.pages.each do |page|
@ -784,6 +784,8 @@ class Project < ActiveRecord::Base
wiki.pages << new_wiki_page wiki.pages << new_wiki_page
wiki_pages_map[page.id] = new_wiki_page wiki_pages_map[page.id] = new_wiki_page
end end
self.wiki = wiki
wiki.save wiki.save
# Reproduce page hierarchy # Reproduce page hierarchy
project.wiki.pages.each do |page| project.wiki.pages.each do |page|

View File

@ -233,6 +233,15 @@ class ProjectCopyTest < ActiveSupport::TestCase
assert_equal "Start page", @project.wiki.start_page assert_equal "Start page", @project.wiki.start_page
end end
test "#copy should copy wiki without wiki module" do
project = Project.new(:name => 'Copy Test', :identifier => 'copy-test', :enabled_module_names => [])
assert_difference 'Wiki.count' do
assert project.copy(@source_project)
end
assert project.wiki
end
test "#copy should copy wiki pages and content with hierarchy" do test "#copy should copy wiki pages and content with hierarchy" do
assert_difference 'WikiPage.count', @source_project.wiki.pages.size do assert_difference 'WikiPage.count', @source_project.wiki.pages.size do
assert @project.copy(@source_project) assert @project.copy(@source_project)