FIX: `UserNotificationsHelper#logo_url' to work with S3 based uploads.
https://meta.discourse.org/t/digest-logo-not-working/103255
This commit is contained in:
parent
dcf9c6da59
commit
27c793a192
|
@ -1,4 +1,5 @@
|
||||||
module UserNotificationsHelper
|
module UserNotificationsHelper
|
||||||
|
include GlobalPath
|
||||||
|
|
||||||
def indent(text, by = 2)
|
def indent(text, by = 2)
|
||||||
spacer = " " * by
|
spacer = " " * by
|
||||||
|
@ -22,11 +23,9 @@ module UserNotificationsHelper
|
||||||
logo_url = SiteSetting.site_logo_url if logo_url.blank? || logo_url =~ /\.svg$/i
|
logo_url = SiteSetting.site_logo_url if logo_url.blank? || logo_url =~ /\.svg$/i
|
||||||
return nil if logo_url.blank? || logo_url =~ /\.svg$/i
|
return nil if logo_url.blank? || logo_url =~ /\.svg$/i
|
||||||
|
|
||||||
if logo_url !~ /http(s)?\:\/\//
|
uri = URI.parse(UrlHelper.absolute(upload_cdn_path(logo_url)))
|
||||||
logo_url = "#{Discourse.base_url}#{logo_url}"
|
uri.scheme = SiteSetting.scheme if uri.scheme.blank?
|
||||||
end
|
uri.to_s
|
||||||
|
|
||||||
logo_url
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def html_site_link(color)
|
def html_site_link(color)
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
require 'rails_helper'
|
require 'rails_helper'
|
||||||
|
|
||||||
describe UserNotificationsHelper do
|
describe UserNotificationsHelper do
|
||||||
describe 'email_excerpt' do
|
describe '#email_excerpt' do
|
||||||
let(:paragraphs) { [
|
let(:paragraphs) { [
|
||||||
"<p>This is the first paragraph, but you should read more.</p>",
|
"<p>This is the first paragraph, but you should read more.</p>",
|
||||||
"<p>And here is its friend, the second paragraph.</p>"
|
"<p>And here is its friend, the second paragraph.</p>"
|
||||||
|
@ -53,4 +53,72 @@ describe UserNotificationsHelper do
|
||||||
expect(helper.email_excerpt(cooked)).to eq "<p>BEFORE</p><blockquote>\n <p>This is a user quote</p>\n</blockquote><p>AFTER</p>"
|
expect(helper.email_excerpt(cooked)).to eq "<p>BEFORE</p><blockquote>\n <p>This is a user quote</p>\n</blockquote><p>AFTER</p>"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe '#logo_url' do
|
||||||
|
describe 'local store' do
|
||||||
|
let(:upload) { Fabricate(:upload, sha1: "somesha1") }
|
||||||
|
|
||||||
|
before do
|
||||||
|
SiteSetting.logo = upload
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should return the right URL' do
|
||||||
|
expect(helper.logo_url).to eq(
|
||||||
|
"http://test.localhost/uploads/default/original/1X/somesha1.png"
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
describe 'when cdn path is configured' do
|
||||||
|
before do
|
||||||
|
GlobalSetting.expects(:cdn_url)
|
||||||
|
.returns('https://some.localcdn.com')
|
||||||
|
.at_least_once
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should return the right URL' do
|
||||||
|
expect(helper.logo_url).to eq(
|
||||||
|
"https://some.localcdn.com/uploads/default/original/1X/somesha1.png"
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe 'when logo is an SVG' do
|
||||||
|
let(:upload) { Fabricate(:upload, extension: "svg") }
|
||||||
|
|
||||||
|
it 'should return nil' do
|
||||||
|
expect(helper.logo_url).to eq(nil)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe 's3 store' do
|
||||||
|
let(:upload) { Fabricate(:upload_s3, sha1: "somesha1") }
|
||||||
|
|
||||||
|
before do
|
||||||
|
SiteSetting.enable_s3_uploads = true
|
||||||
|
SiteSetting.s3_upload_bucket = "s3-upload-bucket"
|
||||||
|
SiteSetting.s3_access_key_id = "some key"
|
||||||
|
SiteSetting.s3_secret_access_key = "some secret key"
|
||||||
|
SiteSetting.logo = upload
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should return the right URL' do
|
||||||
|
expect(helper.logo_url).to eq(
|
||||||
|
"http://s3-upload-bucket.s3.dualstack.us-east-1.amazonaws.com/original/1X/somesha1.png"
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
describe 'when cdn path is configured' do
|
||||||
|
before do
|
||||||
|
SiteSetting.s3_cdn_url = 'https://some.cdn.com'
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should return the right url' do
|
||||||
|
expect(helper.logo_url).to eq(
|
||||||
|
"https://some.cdn.com/original/1X/somesha1.png"
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue