Commit 4c506c44 authored by Grzegorz Bizon's avatar Grzegorz Bizon

Fix using link to uploads in global snippets

Closes #17342, closes #17363
parent 4cc85a58
...@@ -31,7 +31,9 @@ module Banzai ...@@ -31,7 +31,9 @@ module Banzai
end end
def build_url(uri) def build_url(uri)
File.join(Gitlab.config.gitlab.url, context[:project].path_with_namespace, uri) return '#' unless project = context[:project]
File.join(Gitlab.config.gitlab.url, project.path_with_namespace, uri)
end end
# Ensure that a :project key exists in context # Ensure that a :project key exists in context
......
...@@ -8,6 +8,10 @@ describe Banzai::Filter::UploadLinkFilter, lib: true do ...@@ -8,6 +8,10 @@ describe Banzai::Filter::UploadLinkFilter, lib: true do
project: project project: project
}) })
raw_filter(doc, contexts)
end
def raw_filter(doc, contexts = {})
described_class.call(doc, contexts) described_class.call(doc, contexts)
end end
...@@ -70,4 +74,18 @@ describe Banzai::Filter::UploadLinkFilter, lib: true do ...@@ -70,4 +74,18 @@ describe Banzai::Filter::UploadLinkFilter, lib: true do
expect(doc.at_css('img')['src']).to match "#{Gitlab.config.gitlab.url}/#{project.path_with_namespace}/uploads/%ED%95%9C%EA%B8%80.png" expect(doc.at_css('img')['src']).to match "#{Gitlab.config.gitlab.url}/#{project.path_with_namespace}/uploads/%ED%95%9C%EA%B8%80.png"
end end
end end
context 'when project context does not exist' do
let(:upload_link) { link('/uploads/e90decf88d8f96fe9e1389afc2e4a91f/test.jpg') }
it 'does not raise error' do
expect { raw_filter(upload_link, project: nil) }.to_not raise_error
end
it 'provides an empty link' do
doc = raw_filter(upload_link, project: nil)
expect(doc.at_css('a')['href']).to eq '#'
end
end
end end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment