mirror of
https://github.com/discourse/discourse.git
synced 2025-03-25 23:35:43 +08:00
FIX: Upload#short_url
generates incorrect URL when extension is nil
.
This commit is contained in:
parent
e8b9f38374
commit
73a45048a0
@ -890,7 +890,7 @@ class Post < ActiveRecord::Base
|
|||||||
/\/uploads\/#{RailsMultisite::ConnectionManagement.current_db}\//,
|
/\/uploads\/#{RailsMultisite::ConnectionManagement.current_db}\//,
|
||||||
/\/original\//,
|
/\/original\//,
|
||||||
/\/optimized\//,
|
/\/optimized\//,
|
||||||
/\/uploads\/short-url\/[a-zA-Z0-9]+\..*/
|
/\/uploads\/short-url\/[a-zA-Z0-9]+(\.[a-z0-9]+)?/
|
||||||
]
|
]
|
||||||
|
|
||||||
fragments ||= Nokogiri::HTML::fragment(self.cooked)
|
fragments ||= Nokogiri::HTML::fragment(self.cooked)
|
||||||
|
@ -361,7 +361,7 @@ class Upload < ActiveRecord::Base
|
|||||||
private
|
private
|
||||||
|
|
||||||
def short_url_basename
|
def short_url_basename
|
||||||
"#{Upload.base62_sha1(sha1)}.#{extension}"
|
"#{Upload.base62_sha1(sha1)}#{extension.present? ? ".#{extension}" : ""}"
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
@ -1234,6 +1234,7 @@ describe Post do
|
|||||||
fab!(:audio_upload) { Fabricate(:upload, extension: "ogg") }
|
fab!(:audio_upload) { Fabricate(:upload, extension: "ogg") }
|
||||||
fab!(:attachment_upload) { Fabricate(:upload, extension: "csv") }
|
fab!(:attachment_upload) { Fabricate(:upload, extension: "csv") }
|
||||||
fab!(:attachment_upload_2) { Fabricate(:upload) }
|
fab!(:attachment_upload_2) { Fabricate(:upload) }
|
||||||
|
fab!(:attachment_upload_3) { Fabricate(:upload, extension: nil) }
|
||||||
|
|
||||||
let(:base_url) { "#{Discourse.base_url_no_prefix}#{Discourse.base_uri}" }
|
let(:base_url) { "#{Discourse.base_url_no_prefix}#{Discourse.base_uri}" }
|
||||||
let(:video_url) { "#{base_url}#{video_upload.url}" }
|
let(:video_url) { "#{base_url}#{video_upload.url}" }
|
||||||
@ -1243,6 +1244,7 @@ describe Post do
|
|||||||
<<~RAW
|
<<~RAW
|
||||||
<a href="#{attachment_upload.url}">Link</a>
|
<a href="#{attachment_upload.url}">Link</a>
|
||||||
[test|attachment](#{attachment_upload_2.short_url})
|
[test|attachment](#{attachment_upload_2.short_url})
|
||||||
|
[test3|attachment](#{attachment_upload_3.short_url})
|
||||||
<img src="#{image_upload.url}">
|
<img src="#{image_upload.url}">
|
||||||
|
|
||||||
<video width="100%" height="100%" controls>
|
<video width="100%" height="100%" controls>
|
||||||
@ -1272,7 +1274,8 @@ describe Post do
|
|||||||
image_upload.id,
|
image_upload.id,
|
||||||
audio_upload.id,
|
audio_upload.id,
|
||||||
attachment_upload.id,
|
attachment_upload.id,
|
||||||
attachment_upload_2.id
|
attachment_upload_2.id,
|
||||||
|
attachment_upload_3.id
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -235,6 +235,9 @@ describe Upload do
|
|||||||
it "should generate a correct short url" do
|
it "should generate a correct short url" do
|
||||||
upload = Upload.new(sha1: 'bda2c513e1da04f7b4e99230851ea2aafeb8cc4e', extension: 'png')
|
upload = Upload.new(sha1: 'bda2c513e1da04f7b4e99230851ea2aafeb8cc4e', extension: 'png')
|
||||||
expect(upload.short_url).to eq('upload://r3AYqESanERjladb4vBB7VsMBm6.png')
|
expect(upload.short_url).to eq('upload://r3AYqESanERjladb4vBB7VsMBm6.png')
|
||||||
|
|
||||||
|
upload.extension = nil
|
||||||
|
expect(upload.short_url).to eq('upload://r3AYqESanERjladb4vBB7VsMBm6')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user