Fix bug in WikiLinkFilter
.
1. An exception would be raised if the filter was called with an invalid URI. Mainly because we weren't catching the `Addressable` exception. 2. This commit fixes it and adds a spec for the filter.
This commit is contained in:
parent
00906b5bb6
commit
6d169d36ca
2 changed files with 27 additions and 1 deletions
|
@ -29,7 +29,7 @@ module Banzai
|
||||||
return if html_attr.blank?
|
return if html_attr.blank?
|
||||||
|
|
||||||
html_attr.value = apply_rewrite_rules(html_attr.value)
|
html_attr.value = apply_rewrite_rules(html_attr.value)
|
||||||
rescue URI::Error
|
rescue URI::Error, Addressable::URI::InvalidURIError
|
||||||
# noop
|
# noop
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
26
spec/lib/banzai/filter/wiki_link_filter_spec.rb
Normal file
26
spec/lib/banzai/filter/wiki_link_filter_spec.rb
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe Banzai::Filter::WikiLinkFilter, lib: true do
|
||||||
|
include FilterSpecHelper
|
||||||
|
|
||||||
|
let(:namespace) { build_stubbed(:namespace, name: "wiki_link_ns") }
|
||||||
|
let(:project) { build_stubbed(:empty_project, :public, name: "wiki_link_project", namespace: namespace) }
|
||||||
|
let(:user) { double }
|
||||||
|
let(:wiki) { ProjectWiki.new(project, user) }
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
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
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in a new issue