diff --git a/app/controllers/wiki_controller.rb b/app/controllers/wiki_controller.rb index 2f174877f..10fd099e0 100644 --- a/app/controllers/wiki_controller.rb +++ b/app/controllers/wiki_controller.rb @@ -169,7 +169,7 @@ class WikiController < ApplicationController @content.author = User.current if @page.save_with_content(@content) - attachments = Attachment.attach_files(@page, params[:attachments]) + attachments = Attachment.attach_files(@page, params[:attachments] || (params[:wiki_page] && params[:wiki_page][:uploads])) render_attachment_warning_if_needed(@page) call_hook(:controller_wiki_edit_after_save, { :params => params, :page => @page}) diff --git a/test/integration/api_test/wiki_pages_test.rb b/test/integration/api_test/wiki_pages_test.rb index 9a091e781..51e132eda 100644 --- a/test/integration/api_test/wiki_pages_test.rb +++ b/test/integration/api_test/wiki_pages_test.rb @@ -164,6 +164,25 @@ class Redmine::ApiTest::WikiPagesTest < Redmine::ApiTest::Base assert_nil page.parent end + test "PUT /projects/:project_id/wiki/:title.xml with attachment" do + set_tmp_attachments_directory + attachment = Attachment.create!(:file => uploaded_test_file("testfile.txt", "text/plain"), :author_id => 2) + assert_difference 'WikiPage.count' do + assert_difference 'WikiContent::Version.count' do + put '/projects/ecookbook/wiki/New_page_from_API.xml', + {:wiki_page => {:text => 'New content from API with Attachments', :comments => 'API create with Attachments', + :uploads => [:token => attachment.token, :filename => 'testfile.txt', :content_type => "text/plain"]}}, + credentials('jsmith') + assert_response 201 + end + end + + page = WikiPage.order('id DESC').first + assert_equal 'New_page_from_API', page.title + assert_include attachment, page.attachments + assert_equal attachment.filename, page.attachments.first.filename + end + test "PUT /projects/:project_id/wiki/:title.xml with parent" do assert_difference 'WikiPage.count' do assert_difference 'WikiContent::Version.count' do