Separate Web modules related to Federation

This commit is contained in:
rustra
2020-01-23 00:55:07 +01:00
parent d1251280c5
commit 8ca5c0b320
42 changed files with 279 additions and 337 deletions

View File

@@ -1,30 +0,0 @@
# Portions of this file are derived from Pleroma:
# Pleroma: A lightweight social networking server
# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule MobilizonWeb.Plug.FederatingTest do
use MobilizonWeb.ConnCase
test "returns and halt the conn when federating is disabled" do
Mobilizon.Config.put([:instance, :federating], false)
conn =
build_conn()
|> MobilizonWeb.Plugs.Federating.call(%{})
assert conn.status == 404
assert conn.halted
end
test "does nothing when federating is enabled" do
Mobilizon.Config.put([:instance, :federating], true)
conn =
build_conn()
|> MobilizonWeb.Plugs.Federating.call(%{})
refute conn.status
refute conn.halted
end
end

View File

@@ -1,60 +0,0 @@
# Portions of this file are derived from Pleroma:
# Pleroma: A lightweight social networking server
# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule MobilizonWeb.Plugs.MappedSignatureToIdentityPlugTest do
use MobilizonWeb.ConnCase
use ExVCR.Mock, adapter: ExVCR.Adapter.Hackney
alias MobilizonWeb.Plugs.MappedSignatureToIdentity
defp set_signature(conn, key_id) do
conn
|> put_req_header("signature", "keyId=\"#{key_id}\"")
|> assign(:valid_signature, true)
end
test "it successfully maps a valid identity with a valid signature" do
use_cassette "activity_pub/signature/valid" do
conn =
build_conn(:get, "/doesntmattter")
|> set_signature("https://framapiaf.org/users/admin")
|> MappedSignatureToIdentity.call(%{})
refute is_nil(conn.assigns.actor)
end
end
test "it successfully maps a valid identity with a valid signature with payload" do
use_cassette "activity_pub/signature/valid_payload" do
conn =
build_conn(:post, "/doesntmattter", %{"actor" => "https://framapiaf.org/users/admin"})
|> set_signature("https://framapiaf.org/users/admin")
|> MappedSignatureToIdentity.call(%{})
refute is_nil(conn.assigns.actor)
end
end
test "it considers a mapped identity to be invalid when it mismatches a payload" do
use_cassette "activity_pub/signature/invalid_payload" do
conn =
build_conn(:post, "/doesntmattter", %{"actor" => "https://framapiaf.org/users/admin"})
|> set_signature("https://niu.moe/users/rye")
|> MappedSignatureToIdentity.call(%{})
assert %{valid_signature: false} == conn.assigns
end
end
test "it considers a mapped identity to be invalid when the identity cannot be found" do
use_cassette "activity_pub/signature/invalid_not_found" do
conn =
build_conn(:post, "/doesntmattter", %{"actor" => "https://framapiaf.org/users/admin"})
|> set_signature("http://niu.moe/users/rye")
|> MappedSignatureToIdentity.call(%{})
assert %{valid_signature: false} == conn.assigns
end
end
end

View File

@@ -2,11 +2,14 @@ defmodule MobilizonWeb.Resolvers.EventResolverTest do
use MobilizonWeb.ConnCase
use Bamboo.Test
use Oban.Testing, repo: Mobilizon.Storage.Repo
alias Mobilizon.Events
alias MobilizonWeb.{AbsintheHelpers, Email}
alias Mobilizon.Service.Workers.BuildSearchWorker
import Mobilizon.Factory
alias Mobilizon.Events
alias Mobilizon.Service.Workers
alias MobilizonWeb.{AbsintheHelpers, Email}
@event %{
description: "some body",
title: "some title",
@@ -155,7 +158,7 @@ defmodule MobilizonWeb.Resolvers.EventResolverTest do
assert json_response(res, 200)["data"]["createEvent"]["title"] == "come to my event"
{id, ""} = json_response(res, 200)["data"]["createEvent"]["id"] |> Integer.parse()
assert_enqueued(worker: BuildSearchWorker, args: %{event_id: id, op: :insert_search_event})
assert_enqueued(worker: Workers.BuildSearch, args: %{event_id: id, op: :insert_search_event})
end
test "create_event/3 creates an event and escapes title and description", %{
@@ -201,7 +204,7 @@ defmodule MobilizonWeb.Resolvers.EventResolverTest do
"<b>My description</b> <img src=\"http://placekitten.com/g/200/300\" />"
{id, ""} = res["data"]["createEvent"]["id"] |> Integer.parse()
assert_enqueued(worker: BuildSearchWorker, args: %{event_id: id, op: :insert_search_event})
assert_enqueued(worker: Workers.BuildSearch, args: %{event_id: id, op: :insert_search_event})
end
test "create_event/3 creates an event as a draft", %{conn: conn, actor: actor, user: user} do
@@ -238,7 +241,7 @@ defmodule MobilizonWeb.Resolvers.EventResolverTest do
{event_id_int, ""} = Integer.parse(event_id)
refute_enqueued(
worker: BuildSearchWorker,
worker: Workers.BuildSearch,
args: %{event_id: event_id_int, op: :insert_search_event}
)
@@ -371,7 +374,7 @@ defmodule MobilizonWeb.Resolvers.EventResolverTest do
{event_id_int, ""} = Integer.parse(event["id"])
assert_enqueued(
worker: BuildSearchWorker,
worker: Workers.BuildSearch,
args: %{event_id: event_id_int, op: :insert_search_event}
)
end
@@ -827,7 +830,7 @@ defmodule MobilizonWeb.Resolvers.EventResolverTest do
{event_id_int, ""} = Integer.parse(event_res["id"])
assert_enqueued(
worker: BuildSearchWorker,
worker: Workers.BuildSearch,
args: %{event_id: event_id_int, op: :update_search_event}
)

View File

@@ -1,10 +1,14 @@
defmodule MobilizonWeb.Resolvers.PersonResolverTest do
use MobilizonWeb.ConnCase
alias MobilizonWeb.AbsintheHelpers
alias Mobilizon.Actors.Actor
import Mobilizon.Factory
use Oban.Testing, repo: Mobilizon.Storage.Repo
import Mobilizon.Factory
alias Mobilizon.Actors.Actor
alias Mobilizon.Service.Workers
alias MobilizonWeb.AbsintheHelpers
@non_existent_username "nonexistent"
describe "Person Resolver" do
@@ -500,7 +504,7 @@ defmodule MobilizonWeb.Resolvers.PersonResolverTest do
assert json_response(res, 200)["errors"] == nil
assert_enqueued(
worker: Mobilizon.Service.Workers.BackgroundWorker,
worker: Workers.Background,
args: %{"actor_id" => person_id, "op" => "delete_actor"}
)

View File

@@ -1,8 +1,10 @@
defmodule MobilizonWeb.Resolvers.SearchResolverTest do
use MobilizonWeb.ConnCase
alias MobilizonWeb.AbsintheHelpers
import Mobilizon.Factory
alias Mobilizon.Service.Workers.BuildSearchWorker
alias Mobilizon.Service.Workers
alias MobilizonWeb.AbsintheHelpers
setup %{conn: conn} do
user = insert(:user)
@@ -17,7 +19,7 @@ defmodule MobilizonWeb.Resolvers.SearchResolverTest do
insert(:actor, user: user, preferred_username: "test_person")
insert(:actor, type: :Group, preferred_username: "test_group")
event = insert(:event, title: "test_event")
BuildSearchWorker.insert_search_event(event)
Workers.BuildSearch.insert_search_event(event)
query = """
{
@@ -51,7 +53,7 @@ defmodule MobilizonWeb.Resolvers.SearchResolverTest do
actor = insert(:actor, user: user, preferred_username: "test_person")
insert(:actor, type: :Group, preferred_username: "test_group")
event = insert(:event, title: "test_event")
BuildSearchWorker.insert_search_event(event)
Workers.BuildSearch.insert_search_event(event)
query = """
{
@@ -84,7 +86,7 @@ defmodule MobilizonWeb.Resolvers.SearchResolverTest do
insert(:actor, user: user, preferred_username: "test_person")
group = insert(:actor, type: :Group, preferred_username: "test_group")
event = insert(:event, title: "test_event")
BuildSearchWorker.insert_search_event(event)
Workers.BuildSearch.insert_search_event(event)
query = """
{
@@ -118,9 +120,9 @@ defmodule MobilizonWeb.Resolvers.SearchResolverTest do
event1 = insert(:event, title: "Pineapple fashion week")
event2 = insert(:event, title: "I love pineAPPLE")
event3 = insert(:event, title: "Hello")
BuildSearchWorker.insert_search_event(event1)
BuildSearchWorker.insert_search_event(event2)
BuildSearchWorker.insert_search_event(event3)
Workers.BuildSearch.insert_search_event(event1)
Workers.BuildSearch.insert_search_event(event2)
Workers.BuildSearch.insert_search_event(event3)
query = """
{
@@ -161,9 +163,9 @@ defmodule MobilizonWeb.Resolvers.SearchResolverTest do
event1 = insert(:event, title: "Pineapple fashion week")
event2 = insert(:event, title: "I love pineAPPLE")
event3 = insert(:event, title: "Hello")
BuildSearchWorker.insert_search_event(event1)
BuildSearchWorker.insert_search_event(event2)
BuildSearchWorker.insert_search_event(event3)
Workers.BuildSearch.insert_search_event(event1)
Workers.BuildSearch.insert_search_event(event2)
Workers.BuildSearch.insert_search_event(event3)
query = """
{
@@ -198,7 +200,7 @@ defmodule MobilizonWeb.Resolvers.SearchResolverTest do
insert(:actor, user: user, preferred_username: "person", name: "Torréfaction du Kafé")
insert(:actor, type: :Group, preferred_username: "group", name: "Kafé group")
event = insert(:event, title: "Tour du monde des Kafés")
BuildSearchWorker.insert_search_event(event)
Workers.BuildSearch.insert_search_event(event)
# Elaborate query
query = """
@@ -230,7 +232,7 @@ defmodule MobilizonWeb.Resolvers.SearchResolverTest do
insert(:actor, user: user, preferred_username: "person", name: "Torréfaction du Kafé")
group = insert(:actor, type: :Group, preferred_username: "group", name: "Kafé group")
event = insert(:event, title: "Tour du monde des Kafés")
BuildSearchWorker.insert_search_event(event)
Workers.BuildSearch.insert_search_event(event)
# Elaborate query
query = """