diff options
author | abcang <abcang1015@gmail.com> | 2017-05-10 01:17:41 +0900 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2017-05-09 18:17:41 +0200 |
commit | 08e94d1b197a053504ce37dbbe03216a80043b10 (patch) | |
tree | a4dc7f3d2cb63c318383654e3d26dbf431f43731 | |
parent | 2fba94b36eac65a368ec10f4c8c5808baa0179e7 (diff) |
Fixed bug that timeline can not be displayed by InvalidURIError (#2947)
-rw-r--r-- | app/lib/formatter.rb | 2 | ||||
-rw-r--r-- | spec/lib/formatter_spec.rb | 7 |
2 files changed, 9 insertions, 0 deletions
diff --git a/app/lib/formatter.rb b/app/lib/formatter.rb index 12b030e11..0f2989a81 100644 --- a/app/lib/formatter.rb +++ b/app/lib/formatter.rb @@ -92,6 +92,8 @@ class Formatter rel: 'nofollow noopener', } Twitter::Autolink.send(:link_to_text, entity, link_html(entity[:url]), normalized_url, html_attrs) + rescue Addressable::URI::InvalidURIError + encode(entity[:url]) end def link_to_mention(entity, mentions) diff --git a/spec/lib/formatter_spec.rb b/spec/lib/formatter_spec.rb index 81eaf00e8..791bcce86 100644 --- a/spec/lib/formatter_spec.rb +++ b/spec/lib/formatter_spec.rb @@ -123,6 +123,13 @@ RSpec.describe Formatter do expect(subject).to match '<p><img src="javascript:alert('XSS');"></p>' end end + + context 'contains invalid URL' do + let(:local_text) { 'http://www\.google\.com' } + it 'has valid url' do + expect(subject).to eq '<p>http://www\.google\.com</p>' + end + end end describe '#reformat' do |