From 7d6b3d344db870e1417fc5a08413729b60e7ce77 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Mon, 16 May 2016 06:29:52 +0000 Subject: [PATCH] Add support for attaching file to WIKI pages by REST API (#14830). Patch by Takenori TAKAKI. git-svn-id: http://svn.redmine.org/redmine/trunk@15415 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/controllers/wiki_controller.rb | 2 +- test/integration/api_test/wiki_pages_test.rb | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) 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 -- 2.39.5