Merge branch 'sh-fix-upload-snippets-with-relative-url-root' into 'master'
Fix 404s for snippet uploads when relative URL root used Closes #56280 See merge request gitlab-org/gitlab-ce!24588
This commit is contained in:
commit
a949043df7
3 changed files with 61 additions and 0 deletions
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Fix 404s for snippet uploads when relative URL root used
|
||||
merge_request: 24588
|
||||
author:
|
||||
type: fixed
|
|
@ -58,6 +58,8 @@ module Banzai
|
|||
path_parts.unshift(relative_url_root, 'groups', group.full_path, '-')
|
||||
elsif project
|
||||
path_parts.unshift(relative_url_root, project.full_path)
|
||||
else
|
||||
path_parts.unshift(relative_url_root)
|
||||
end
|
||||
|
||||
begin
|
||||
|
|
|
@ -353,5 +353,59 @@ describe Banzai::Filter::RelativeLinkFilter do
|
|||
expect(doc.at_css('a')['href']).to eq 'http://example.com'
|
||||
end
|
||||
end
|
||||
|
||||
context 'to a personal snippet' do
|
||||
let(:group) { nil }
|
||||
let(:project) { nil }
|
||||
let(:relative_path) { '/uploads/-/system/personal_snippet/6/674e4f07fbf0a7736c3439212896e51a/example.tar.gz' }
|
||||
|
||||
context 'with an absolute URL' do
|
||||
let(:absolute_path) { Gitlab.config.gitlab.url + relative_path }
|
||||
let(:only_path) { false }
|
||||
|
||||
it 'rewrites the link correctly' do
|
||||
doc = filter(link(relative_path))
|
||||
|
||||
expect(doc.at_css('a')['href']).to eq(absolute_path)
|
||||
end
|
||||
end
|
||||
|
||||
context 'with a relative URL root' do
|
||||
let(:gitlab_root) { '/gitlab' }
|
||||
let(:absolute_path) { Gitlab.config.gitlab.url + gitlab_root + relative_path }
|
||||
|
||||
before do
|
||||
stub_config_setting(relative_url_root: gitlab_root)
|
||||
end
|
||||
|
||||
context 'with an absolute URL' do
|
||||
let(:only_path) { false }
|
||||
|
||||
it 'rewrites the link correctly' do
|
||||
doc = filter(link(relative_path))
|
||||
|
||||
expect(doc.at_css('a')['href']).to eq(absolute_path)
|
||||
end
|
||||
end
|
||||
|
||||
it 'rewrites the link correctly' do
|
||||
doc = filter(link(relative_path))
|
||||
|
||||
expect(doc.at_css('a')['href']).to eq(gitlab_root + relative_path)
|
||||
end
|
||||
end
|
||||
|
||||
it 'rewrites the link correctly' do
|
||||
doc = filter(link(relative_path))
|
||||
|
||||
expect(doc.at_css('a')['href']).to eq(relative_path)
|
||||
end
|
||||
|
||||
it 'does not modify absolute URL' do
|
||||
doc = filter(link('http://example.com'))
|
||||
|
||||
expect(doc.at_css('a')['href']).to eq 'http://example.com'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue