about summary refs log tree commit diff
path: root/spec/lib
diff options
context:
space:
mode:
authorDavid Yip <yipdw@member.fsf.org>2017-09-09 23:56:21 -0500
committerDavid Yip <yipdw@member.fsf.org>2017-09-09 23:56:21 -0500
commit67ad4533732f2e5cfc8c7f7ad3abaf7a5eb2647b (patch)
tree011ea44fc94bcff6f8ec4e23c3edf887359243d2 /spec/lib
parent3dff74eecf5387b92b862893248710d2efb90eec (diff)
parent90712d42933efd9978e4bbae82f81a4650aa4d84 (diff)
Merge tag 'v1.6.0rc4' into sync/upstream-1.6.0rc4
Conflicts:
      app/javascript/mastodon/features/getting_started/index.js
      app/javascript/packs/public.js
      app/javascript/styles/components.scss
Diffstat (limited to 'spec/lib')
-rw-r--r--spec/lib/activitypub/activity/update_spec.rb8
-rw-r--r--spec/lib/activitypub/tag_manager_spec.rb28
2 files changed, 33 insertions, 3 deletions
diff --git a/spec/lib/activitypub/activity/update_spec.rb b/spec/lib/activitypub/activity/update_spec.rb
index 0bd6d00d9..ea308e35c 100644
--- a/spec/lib/activitypub/activity/update_spec.rb
+++ b/spec/lib/activitypub/activity/update_spec.rb
@@ -2,12 +2,16 @@ require 'rails_helper'
 
 RSpec.describe ActivityPub::Activity::Update do
   let!(:sender) { Fabricate(:account) }
-  
+
   before do
+    stub_request(:get, actor_json[:outbox]).to_return(status: 404)
+    stub_request(:get, actor_json[:followers]).to_return(status: 404)
+    stub_request(:get, actor_json[:following]).to_return(status: 404)
+
     sender.update!(uri: ActivityPub::TagManager.instance.uri_for(sender))
   end
 
-  let(:modified_sender) do 
+  let(:modified_sender) do
     sender.dup.tap do |modified_sender|
       modified_sender.display_name = 'Totally modified now'
     end
diff --git a/spec/lib/activitypub/tag_manager_spec.rb b/spec/lib/activitypub/tag_manager_spec.rb
index 8f7662e24..dea8abc65 100644
--- a/spec/lib/activitypub/tag_manager_spec.rb
+++ b/spec/lib/activitypub/tag_manager_spec.rb
@@ -91,9 +91,35 @@ RSpec.describe ActivityPub::TagManager do
   end
 
   describe '#uri_to_resource' do
-    it 'returns the local resource' do
+    it 'returns the local account' do
       account = Fabricate(:account)
       expect(subject.uri_to_resource(subject.uri_for(account), Account)).to eq account
     end
+
+    it 'returns the remote account by matching URI without fragment part' do
+      account = Fabricate(:account, uri: 'https://example.com/123')
+      expect(subject.uri_to_resource('https://example.com/123#456', Account)).to eq account
+    end
+
+    it 'returns the local status for ActivityPub URI' do
+      status = Fabricate(:status)
+      expect(subject.uri_to_resource(subject.uri_for(status), Status)).to eq status
+    end
+
+    it 'returns the local status for OStatus tag: URI' do
+      status = Fabricate(:status)
+      expect(subject.uri_to_resource(::TagManager.instance.uri_for(status), Status)).to eq status
+    end
+
+    it 'returns the local status for OStatus StreamEntry URL' do
+      status = Fabricate(:status)
+      stream_entry_url = account_stream_entry_url(status.account, status.stream_entry)
+      expect(subject.uri_to_resource(stream_entry_url, Status)).to eq status
+    end
+
+    it 'returns the remote status by matching URI without fragment part' do
+      status = Fabricate(:status, uri: 'https://example.com/123')
+      expect(subject.uri_to_resource('https://example.com/123#456', Status)).to eq status
+    end
   end
 end