about summary refs log tree commit diff
path: root/spec/lib
diff options
context:
space:
mode:
authorThibaut Girka <thib@sitedethib.com>2020-10-13 12:47:38 +0200
committerThibG <thib@sitedethib.com>2020-10-13 14:35:07 +0200
commit311f457430e4863f3c74fe6e222a96f62fc0148d (patch)
tree587ad3d1ce347a3bfe4a68e83c60e23188df8325 /spec/lib
parentcd861c051ce5500df49d2fc41b2a6084faa34620 (diff)
Fix crash when autolinking an invalid URI in Markdown
Diffstat (limited to 'spec/lib')
-rw-r--r--spec/lib/formatter_spec.rb16
1 files changed, 14 insertions, 2 deletions
diff --git a/spec/lib/formatter_spec.rb b/spec/lib/formatter_spec.rb
index 633d59c2a..efefb8f00 100644
--- a/spec/lib/formatter_spec.rb
+++ b/spec/lib/formatter_spec.rb
@@ -336,11 +336,22 @@ RSpec.describe Formatter do
       end
 
       context do
+        let(:content_type) { 'text/plain' }
+
         subject do
-          status = Fabricate(:status, text: text, uri: nil)
+          status = Fabricate(:status, text: text, content_type: content_type, uri: nil)
           Formatter.instance.format(status)
         end
 
+        context 'given an invalid URL (invalid port)' do
+          let(:text) { 'https://foo.bar:X/' }
+          let(:content_type) { 'text/markdown' }
+
+          it 'outputs the raw URL' do
+            is_expected.to eq '<p>https://foo.bar:X/</p>'
+          end
+        end
+
         include_examples 'encode and link URLs'
       end
 
@@ -464,7 +475,8 @@ RSpec.describe Formatter do
     subject { Formatter.instance.plaintext(status) }
 
     context 'given a post with local status' do
-      let(:status) { Fabricate(:status, text: '<p>a text by a nerd who uses an HTML tag in text</p>', uri: nil) }
+      let(:status) { Fabricate(:status, text: '<p>a text by a nerd who uses an HTML tag in text</p>', content_type: content_type, uri: nil) }
+      let(:content_type) { 'text/plain' }
 
       it 'returns the raw text' do
         is_expected.to eq '<p>a text by a nerd who uses an HTML tag in text</p>'