1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
5 defmodule Pleroma.Web.ActivityPub.ObjectValidators.AcceptValidationTest do
7 alias Pleroma.Web.ActivityPub.Builder
8 alias Pleroma.Web.ActivityPub.Pipeline
9 alias Pleroma.Web.ActivityPub.ObjectValidator
11 import Pleroma.Factory
14 follower = insert(:user)
15 followed = insert(:user, local: false)
17 {:ok, follow_data, _} = Builder.follow(follower, followed)
18 {:ok, follow_activity, _} = Pipeline.common_pipeline(follow_data, local: true)
20 {:ok, accept_data, _} = Builder.accept(followed, follow_activity)
22 %{accept_data: accept_data, followed: followed}
25 test "it validates a basic 'accept'", %{accept_data: accept_data} do
26 assert {:ok, _, _} = ObjectValidator.validate(accept_data, [])
29 test "it fails when the actor doesn't exist", %{accept_data: accept_data} do
32 |> Map.put("actor", "https://gensokyo.2hu/users/raymoo")
34 assert {:error, _} = ObjectValidator.validate(accept_data, [])
37 test "it fails when the accepted activity doesn't exist", %{accept_data: accept_data} do
40 |> Map.put("object", "https://gensokyo.2hu/users/raymoo/follows/1")
42 assert {:error, _} = ObjectValidator.validate(accept_data, [])