about summary refs log tree commit diff
path: root/spec/lib/formatter_spec.rb
diff options
context:
space:
mode:
authormasarakki <masaki182@gmail.com>2017-05-06 02:48:22 +0900
committerEugen Rochko <eugen@zeonfederated.com>2017-05-05 19:48:22 +0200
commitd08f1112d517788fb66d2683766cc168bac48315 (patch)
tree9ea8c15e12da05deae7552f76c18513c27d94fdd /spec/lib/formatter_spec.rb
parentbcfd9a2f8ecadd55e0a447eff37299f6cbd55a11 (diff)
use Twitter::Extractor for creating links (#2502)
Diffstat (limited to 'spec/lib/formatter_spec.rb')
-rw-r--r--spec/lib/formatter_spec.rb16
1 files changed, 16 insertions, 0 deletions
diff --git a/spec/lib/formatter_spec.rb b/spec/lib/formatter_spec.rb
index b762907b2..81eaf00e8 100644
--- a/spec/lib/formatter_spec.rb
+++ b/spec/lib/formatter_spec.rb
@@ -6,6 +6,10 @@ RSpec.describe Formatter do
   let(:local_status)  { Fabricate(:status, text: local_text, account: account) }
   let(:remote_status) { Fabricate(:status, text: '<script>alert("Hello")</script> Beep boop', uri: 'beepboop', account: account) }
 
+  let(:local_text_with_mention) { "@#{account.username} @#{account.username}@example.com #{local_text}?x=@#{account.username} #hashtag" }
+  let(:local_status_with_mention) { Fabricate(:status, text: local_text_with_mention,
+                                              account: account, mentions: [Fabricate(:mention, account: account)]) }
+
   describe '#format' do
     subject { Formatter.instance.format(local_status) }
 
@@ -21,6 +25,18 @@ RSpec.describe Formatter do
       expect(subject).to match('<a href="http://google.com/" rel="nofollow noopener" target="_blank"><span class="invisible">http://</span><span class="">google.com/</span><span class="invisible"></span></a>')
     end
 
+    it 'contains a mention' do
+      result = Formatter.instance.format(local_status_with_mention)
+      expect(result).to match "<a href=\"#{TagManager.instance.url_for(account)}\" class=\"u-url mention\">@<span>#{account.username}</span></a></span>"
+      expect(result).to match %r{href=\"http://google.com/\?x=@#{account.username}}
+      expect(result).not_to match "href=\"https://example.com/@#{account.username}"
+    end
+
+    it 'contains a hashtag' do
+      result = Formatter.instance.format(local_status_with_mention)
+      expect(result).to match("/tags/hashtag\" class=\"mention hashtag\">#<span>hashtag</span></a>")
+    end
+
     context 'matches a stand-alone medium URL' do
       let(:local_text) { 'https://hackernoon.com/the-power-to-build-communities-a-response-to-mark-zuckerberg-3f2cac9148a4' }
       it 'has valid url' do