parent
d7f61affaf
commit
c917b26f41
|
@ -255,11 +255,15 @@ module ApplicationHelper
|
||||||
#
|
#
|
||||||
# Returns `html_options`, adding `rel: nofollow` for external links
|
# Returns `html_options`, adding `rel: nofollow` for external links
|
||||||
def add_nofollow(link, html_options = {})
|
def add_nofollow(link, html_options = {})
|
||||||
uri = URI(link)
|
begin
|
||||||
|
uri = URI(link)
|
||||||
|
|
||||||
if uri && uri.absolute? && uri.host != Gitlab.config.gitlab.host
|
if uri && uri.absolute? && uri.host != Gitlab.config.gitlab.host
|
||||||
rel = html_options.fetch(:rel, '')
|
rel = html_options.fetch(:rel, '')
|
||||||
html_options[:rel] = (rel + ' nofollow').strip
|
html_options[:rel] = (rel + ' nofollow').strip
|
||||||
|
end
|
||||||
|
rescue URI::Error
|
||||||
|
# noop
|
||||||
end
|
end
|
||||||
|
|
||||||
html_options
|
html_options
|
||||||
|
|
|
@ -249,6 +249,16 @@ describe ApplicationHelper do
|
||||||
expect(link_to('Example', 'http://example.foo/bar')).
|
expect(link_to('Example', 'http://example.foo/bar')).
|
||||||
to eq '<a href="http://example.foo/bar">Example</a>'
|
to eq '<a href="http://example.foo/bar">Example</a>'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'should not raise an error when given a bad URI' do
|
||||||
|
expect { link_to('default', 'if real=1 RANDOM; if real>1 IDLHS; if real>500 LHS') }.
|
||||||
|
not_to raise_error
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should not raise an error when given a bad mailto URL' do
|
||||||
|
expect { link_to('email', 'mailto://foo.bar@example.es?subject=Subject%20Line') }.
|
||||||
|
not_to raise_error
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'markup_render' do
|
describe 'markup_render' do
|
||||||
|
|
Loading…
Reference in New Issue