FileController refreshes references to files/pictures after an upload

This commit is contained in:
Alexey Verkhovsky 2005-01-23 14:54:41 +00:00
parent 14c114529a
commit a7bb047424
2 changed files with 38 additions and 1 deletions

View file

@ -13,6 +13,7 @@ class FileController < ApplicationController
# form supplied # form supplied
file_yard.upload_file(@file_name, @params['file']) file_yard.upload_file(@file_name, @params['file'])
flash[:info] = "File '#{@file_name}' successfully uploaded" flash[:info] = "File '#{@file_name}' successfully uploaded"
@web.refresh_pages_with_references(@file_name)
return_to_last_remembered return_to_last_remembered
elsif file_yard.has_file?(@file_name) elsif file_yard.has_file?(@file_name)
send_file(file_yard.file_path(@file_name)) send_file(file_yard.file_path(@file_name))
@ -32,6 +33,7 @@ class FileController < ApplicationController
# form supplied # form supplied
file_yard.upload_file(@file_name, @params['file']) file_yard.upload_file(@file_name, @params['file'])
flash[:info] = "Image '#{@file_name}' successfully uploaded" flash[:info] = "Image '#{@file_name}' successfully uploaded"
@web.refresh_pages_with_references(@file_name)
return_to_last_remembered return_to_last_remembered
elsif file_yard.has_file?(@file_name) elsif file_yard.has_file?(@file_name)
send_file(file_yard.file_path(@file_name)) send_file(file_yard.file_path(@file_name))

View file

@ -66,7 +66,13 @@ class FileControllerTest < Test::Unit::TestCase
end end
def test_pic_upload_end_to_end def test_pic_upload_end_to_end
# rails-e2e.gif is unknown to the system # edit and re-render home page so that it has an "unknown file" link to 'rails-e2e.gif'
@wiki.revise_page('wiki1', 'HomePage', '[[rails-e2e.gif:pic]]', Time.now, 'AnonymousBrave')
assert_equal "<p><span class=\"newWikiWord\">rails-e2e.gif<a href=\"../pic/rails-e2e.gif\">" +
"?</a></span></p>",
@home.display_content
# rails-e2e.gif is unknown to the system, so pic action goes to the file [upload] form
r = process 'pic', 'web' => 'wiki1', 'id' => 'rails-e2e.gif' r = process 'pic', 'web' => 'wiki1', 'id' => 'rails-e2e.gif'
assert_success assert_success
assert_rendered_file 'file/file' assert_rendered_file 'file/file'
@ -77,6 +83,35 @@ class FileControllerTest < Test::Unit::TestCase
assert_redirect_url '/' assert_redirect_url '/'
assert @wiki.file_yard(@web).has_file?('rails-e2e.gif') assert @wiki.file_yard(@web).has_file?('rails-e2e.gif')
assert_equal(picture, File.read("#{RAILS_ROOT}/storage/test/wiki1/rails-e2e.gif")) assert_equal(picture, File.read("#{RAILS_ROOT}/storage/test/wiki1/rails-e2e.gif"))
# this should refresh the page display content (cached)
assert_equal "<p><img alt=\"rails-e2e.gif\" src=\"../pic/rails-e2e.gif\" /></p>",
@home.display_content
end
def test_pic_upload_end_to_end
# edit and re-render home page so that it has an "unknown file" link to 'rails-e2e.gif'
@wiki.revise_page('wiki1', 'HomePage', '[[instiki-e2e.txt:file]]', Time.now, 'AnonymousBrave')
assert_equal "<p><span class=\"newWikiWord\">instiki-e2e.txt" +
"<a href=\"../file/instiki-e2e.txt\">?</a></span></p>",
@home.display_content
# rails-e2e.gif is unknown to the system, so pic action goes to the file [upload] form
r = process 'file', 'web' => 'wiki1', 'id' => 'instiki-e2e.txt'
assert_success
assert_rendered_file 'file/file'
# User uploads the picture
file = "abcdefgh\n123"
r = process 'file', 'web' => 'wiki1', 'id' => 'instiki-e2e.txt', 'file' => StringIO.new(file)
assert_redirect_url '/'
assert @wiki.file_yard(@web).has_file?('instiki-e2e.txt')
assert_equal(file, File.read("#{RAILS_ROOT}/storage/test/wiki1/instiki-e2e.txt"))
# this should refresh the page display content (cached)
assert_equal "<p><a class=\"existingWikiWord\" href=\"../file/instiki-e2e.txt\">" +
"instiki-e2e.txt</a></p>",
@home.display_content
end end
end end