Add tests for processing statuses using bearcap URIs (#28904)
This commit is contained in:
		@@ -893,6 +893,49 @@ RSpec.describe ActivityPub::Activity::Create do
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    context 'when object URI uses bearcaps' do
 | 
			
		||||
      subject { described_class.new(json, sender) }
 | 
			
		||||
 | 
			
		||||
      let(:token) { 'foo' }
 | 
			
		||||
 | 
			
		||||
      let(:json) do
 | 
			
		||||
        {
 | 
			
		||||
          '@context': 'https://www.w3.org/ns/activitystreams',
 | 
			
		||||
          id: [ActivityPub::TagManager.instance.uri_for(sender), '#foo'].join,
 | 
			
		||||
          type: 'Create',
 | 
			
		||||
          actor: ActivityPub::TagManager.instance.uri_for(sender),
 | 
			
		||||
          object: Addressable::URI.new(scheme: 'bear', query_values: { t: token, u: object_json[:id] }).to_s,
 | 
			
		||||
        }.with_indifferent_access
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      let(:object_json) do
 | 
			
		||||
        {
 | 
			
		||||
          id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
 | 
			
		||||
          type: 'Note',
 | 
			
		||||
          content: 'Lorem ipsum',
 | 
			
		||||
          to: 'https://www.w3.org/ns/activitystreams#Public',
 | 
			
		||||
        }
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      before do
 | 
			
		||||
        stub_request(:get, object_json[:id])
 | 
			
		||||
          .with(headers: { Authorization: "Bearer #{token}" })
 | 
			
		||||
          .to_return(body: Oj.dump(object_json), headers: { 'Content-Type': 'application/activity+json' })
 | 
			
		||||
 | 
			
		||||
        subject.perform
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      it 'creates status' do
 | 
			
		||||
        status = sender.statuses.first
 | 
			
		||||
 | 
			
		||||
        expect(status).to_not be_nil
 | 
			
		||||
        expect(status).to have_attributes(
 | 
			
		||||
          visibility: 'public',
 | 
			
		||||
          text: 'Lorem ipsum'
 | 
			
		||||
        )
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    context 'with an encrypted message' do
 | 
			
		||||
      subject { described_class.new(json, sender, delivery: true, delivered_to_account_id: recipient.id) }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user