tests: add regression tests
This commit is contained in:
		
							parent
							
								
									0b2c051a04
								
							
						
					
					
						commit
						303af9ba4c
					
				
					 3 changed files with 43 additions and 0 deletions
				
			
		
							
								
								
									
										14
									
								
								test/fixtures/httpoison_mock/https__info.pleroma.site_activity.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								test/fixtures/httpoison_mock/https__info.pleroma.site_activity.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,14 @@
 | 
			
		|||
{
 | 
			
		||||
        "@context": "https://www.w3.org/ns/activitystreams",
 | 
			
		||||
        "actor": "https://mastodon.example.org/users/admin",
 | 
			
		||||
        "attachment": [],
 | 
			
		||||
        "attributedTo": "https://mastodon.example.org/users/admin",
 | 
			
		||||
        "content": "<p>this post was not actually written by Haelwenn</p>",
 | 
			
		||||
        "id": "https://info.pleroma.site/activity.json",
 | 
			
		||||
        "published": "2018-09-01T22:15:00Z",
 | 
			
		||||
        "tag": [],
 | 
			
		||||
        "to": [
 | 
			
		||||
            "https://www.w3.org/ns/activitystreams#Public"
 | 
			
		||||
        ],
 | 
			
		||||
        "type": "Note"
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -3,6 +3,14 @@ defmodule HTTPoisonMock do
 | 
			
		|||
 | 
			
		||||
  def get(url, body \\ [], headers \\ [])
 | 
			
		||||
 | 
			
		||||
  def get("https://info.pleroma.site/activity.json", _, _) do
 | 
			
		||||
    {:ok,
 | 
			
		||||
     %Response{
 | 
			
		||||
       status_code: 200,
 | 
			
		||||
       body: File.read!("test/fixtures/httpoison_mock/https__info.pleroma.site_activity.json")
 | 
			
		||||
     }}
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def get("https://puckipedia.com/", [Accept: "application/activity+json"], _) do
 | 
			
		||||
    {:ok,
 | 
			
		||||
     %Response{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -798,4 +798,25 @@ test "it fixes the actor URL property to be a proper URI" do
 | 
			
		|||
      assert rewritten["url"] == "http://example.com"
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  describe "actor origin containment" do
 | 
			
		||||
    test "it rejects objects with a bogus origin" do
 | 
			
		||||
      {:error, _} = ActivityPub.fetch_object_from_id("https://info.pleroma.site/activity.json")
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    test "it rejects activities which reference objects with bogus origins" do
 | 
			
		||||
      user = insert(:user, %{local: false})
 | 
			
		||||
 | 
			
		||||
      data = %{
 | 
			
		||||
        "@context" => "https://www.w3.org/ns/activitystreams",
 | 
			
		||||
        "id" => user.ap_id <> "/activities/1234",
 | 
			
		||||
        "actor" => user.ap_id,
 | 
			
		||||
        "to" => ["https://www.w3.org/ns/activitystreams#Public"],
 | 
			
		||||
        "object" => "https://info.pleroma.site/activity.json",
 | 
			
		||||
        "type" => "Announce"
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      :error = Transmogrifier.handle_incoming(data)
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue