Fix #3613: Broken preview images for flash files.

This commit is contained in:
evazion
2018-04-08 11:21:31 -05:00
parent 5f930630e5
commit 2cbec785ea
2 changed files with 17 additions and 1 deletions

View File

@@ -54,7 +54,7 @@ class StorageManager
seo_tags = seo_tags(post) if tagged_filenames
if type == :preview && !post.has_preview?
"#{base_url}/images/download-preview.png"
"#{root_url}/images/download-preview.png"
elsif type == :preview
"#{base_url}/preview/#{subdir}#{file}"
elsif type == :large && post.has_large?
@@ -66,6 +66,12 @@ class StorageManager
protected
def root_url
origin = Addressable::URI.parse(base_url).origin
origin = "" if origin == "null" # base_url was relative
origin
end
def file_path(md5, file_ext, type)
subdir = subdir_for(md5)
file = file_name(md5, file_ext, type)

View File

@@ -83,6 +83,16 @@ class StorageManagerTest < ActiveSupport::TestCase
assert_equal("/data/sample/sample-#{@post.md5}.jpg", @storage_manager.file_url(@post, :large))
assert_equal("/data/preview/#{@post.md5}.jpg", @storage_manager.file_url(@post, :preview))
end
should "return the correct url for flash files" do
@post = FactoryGirl.create(:post, file_ext: "swf")
@storage_manager.stubs(:base_url).returns("/data")
assert_equal("/images/download-preview.png", @storage_manager.file_url(@post, :preview))
@storage_manager.stubs(:base_url).returns("http://localhost/data")
assert_equal("http://localhost/images/download-preview.png", @storage_manager.file_url(@post, :preview))
end
end
end