Fix links to uploaded files on wiki pages

This commit is contained in:
Nick Thomas 2018-01-16 16:07:47 +00:00
parent 0f449ecc37
commit 31e5921989
No known key found for this signature in database
GPG key ID: 2A313A47AFADACE9
3 changed files with 17 additions and 0 deletions

View file

@ -0,0 +1,5 @@
---
title: Fix links to uploaded files on wiki pages
merge_request: 16499
author:
type: fixed

View file

@ -9,6 +9,10 @@ module Banzai
end
def apply_rules
# Special case: relative URLs beginning with `/uploads/` refer to
# user-uploaded files and will be handled elsewhere.
return @uri.to_s if @uri.relative? && @uri.path.starts_with?('/uploads/')
apply_file_link_rules!
apply_hierarchical_link_rules!
apply_relative_link_rules!

View file

@ -10,15 +10,23 @@ describe Banzai::Filter::WikiLinkFilter do
it "doesn't rewrite absolute links" do
filtered_link = filter("<a href='http://example.com:8000/'>Link</a>", project_wiki: wiki).children[0]
expect(filtered_link.attribute('href').value).to eq('http://example.com:8000/')
end
it "doesn't rewrite links to project uploads" do
filtered_link = filter("<a href='/uploads/a.test'>Link</a>", project_wiki: wiki).children[0]
expect(filtered_link.attribute('href').value).to eq('/uploads/a.test')
end
describe "invalid links" do
invalid_links = ["http://:8080", "http://", "http://:8080/path"]
invalid_links.each do |invalid_link|
it "doesn't rewrite invalid invalid_links like #{invalid_link}" do
filtered_link = filter("<a href='#{invalid_link}'>Link</a>", project_wiki: wiki).children[0]
expect(filtered_link.attribute('href').value).to eq(invalid_link)
end
end