X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;ds=sidebyside;f=test%2Fweb%2Ffederator_test.exs;h=a49265c0c7d93054ae69de572c12b55caac18d8d;hb=e4dc3f71aea900e566c0d66ddffc5cd57e3920dd;hp=88aef0d0f5f26a9a961233c76f70cf67c09d2a2b;hpb=2bc924ba451b1a324663133632093914192cec2d;p=akkoma diff --git a/test/web/federator_test.exs b/test/web/federator_test.exs index 88aef0d0f..a49265c0c 100644 --- a/test/web/federator_test.exs +++ b/test/web/federator_test.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2018 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Web.FederatorTest do alias Pleroma.Web.Federator alias Pleroma.Web.CommonAPI @@ -5,6 +9,11 @@ defmodule Pleroma.Web.FederatorTest do import Pleroma.Factory import Mock + setup_all do + Tesla.Mock.mock_global(fn env -> apply(HttpRequestMock, :request, [env]) end) + :ok + end + test "enqueues an element according to priority" do queue = [%{item: 1, priority: 2}] @@ -50,11 +59,7 @@ defmodule Pleroma.Web.FederatorTest do activity: activity, relay_mock: relay_mock } do - instance = - Application.get_env(:pleroma, :instance) - |> Keyword.put(:allow_relay, false) - - Application.put_env(:pleroma, :instance, instance) + Pleroma.Config.put([:instance, :allow_relay], false) with_mocks([relay_mock]) do Federator.handle(:publish, activity) @@ -62,11 +67,45 @@ defmodule Pleroma.Web.FederatorTest do refute_received :relay_publish - instance = - Application.get_env(:pleroma, :instance) - |> Keyword.put(:allow_relay, true) + Pleroma.Config.put([:instance, :allow_relay], true) + end + end + + describe "Receive an activity" do + test "successfully processes incoming AP docs with correct origin" do + params = %{ + "@context" => "https://www.w3.org/ns/activitystreams", + "actor" => "http://mastodon.example.org/users/admin", + "type" => "Create", + "id" => "http://mastodon.example.org/users/admin/activities/1", + "object" => %{ + "type" => "Note", + "content" => "hi world!", + "id" => "http://mastodon.example.org/users/admin/objects/1", + "attributedTo" => "http://mastodon.example.org/users/admin" + }, + "to" => ["https://www.w3.org/ns/activitystreams#Public"] + } + + {:ok, _activity} = Federator.handle(:incoming_ap_doc, params) + end + + test "rejects incoming AP docs with incorrect origin" do + params = %{ + "@context" => "https://www.w3.org/ns/activitystreams", + "actor" => "https://niu.moe/users/rye", + "type" => "Create", + "id" => "http://mastodon.example.org/users/admin/activities/1", + "object" => %{ + "type" => "Note", + "content" => "hi world!", + "id" => "http://mastodon.example.org/users/admin/objects/1", + "attributedTo" => "http://mastodon.example.org/users/admin" + }, + "to" => ["https://www.w3.org/ns/activitystreams#Public"] + } - Application.put_env(:pleroma, :instance, instance) + :error = Federator.handle(:incoming_ap_doc, params) end end end