summaryrefslogtreecommitdiff
path: root/test/web/node_info_test.exs
diff options
context:
space:
mode:
Diffstat (limited to 'test/web/node_info_test.exs')
-rw-r--r--test/web/node_info_test.exs188
1 files changed, 0 insertions, 188 deletions
diff --git a/test/web/node_info_test.exs b/test/web/node_info_test.exs
deleted file mode 100644
index 06b33607f..000000000
--- a/test/web/node_info_test.exs
+++ /dev/null
@@ -1,188 +0,0 @@
-# Pleroma: A lightweight social networking server
-# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
-# SPDX-License-Identifier: AGPL-3.0-only
-
-defmodule Pleroma.Web.NodeInfoTest do
- use Pleroma.Web.ConnCase
-
- import Pleroma.Factory
-
- alias Pleroma.Config
-
- setup do: clear_config([:mrf_simple])
- setup do: clear_config(:instance)
-
- test "GET /.well-known/nodeinfo", %{conn: conn} do
- links =
- conn
- |> get("/.well-known/nodeinfo")
- |> json_response(200)
- |> Map.fetch!("links")
-
- Enum.each(links, fn link ->
- href = Map.fetch!(link, "href")
-
- conn
- |> get(href)
- |> json_response(200)
- end)
- end
-
- test "nodeinfo shows staff accounts", %{conn: conn} do
- moderator = insert(:user, local: true, is_moderator: true)
- admin = insert(:user, local: true, is_admin: true)
-
- conn =
- conn
- |> get("/nodeinfo/2.1.json")
-
- assert result = json_response(conn, 200)
-
- assert moderator.ap_id in result["metadata"]["staffAccounts"]
- assert admin.ap_id in result["metadata"]["staffAccounts"]
- end
-
- test "nodeinfo shows restricted nicknames", %{conn: conn} do
- conn =
- conn
- |> get("/nodeinfo/2.1.json")
-
- assert result = json_response(conn, 200)
-
- assert Config.get([Pleroma.User, :restricted_nicknames]) ==
- result["metadata"]["restrictedNicknames"]
- end
-
- test "returns software.repository field in nodeinfo 2.1", %{conn: conn} do
- conn
- |> get("/.well-known/nodeinfo")
- |> json_response(200)
-
- conn =
- conn
- |> get("/nodeinfo/2.1.json")
-
- assert result = json_response(conn, 200)
- assert Pleroma.Application.repository() == result["software"]["repository"]
- end
-
- test "returns fieldsLimits field", %{conn: conn} do
- clear_config([:instance, :max_account_fields], 10)
- clear_config([:instance, :max_remote_account_fields], 15)
- clear_config([:instance, :account_field_name_length], 255)
- clear_config([:instance, :account_field_value_length], 2048)
-
- response =
- conn
- |> get("/nodeinfo/2.1.json")
- |> json_response(:ok)
-
- assert response["metadata"]["fieldsLimits"]["maxFields"] == 10
- assert response["metadata"]["fieldsLimits"]["maxRemoteFields"] == 15
- assert response["metadata"]["fieldsLimits"]["nameLength"] == 255
- assert response["metadata"]["fieldsLimits"]["valueLength"] == 2048
- end
-
- test "it returns the safe_dm_mentions feature if enabled", %{conn: conn} do
- clear_config([:instance, :safe_dm_mentions], true)
-
- response =
- conn
- |> get("/nodeinfo/2.1.json")
- |> json_response(:ok)
-
- assert "safe_dm_mentions" in response["metadata"]["features"]
-
- Config.put([:instance, :safe_dm_mentions], false)
-
- response =
- conn
- |> get("/nodeinfo/2.1.json")
- |> json_response(:ok)
-
- refute "safe_dm_mentions" in response["metadata"]["features"]
- end
-
- describe "`metadata/federation/enabled`" do
- setup do: clear_config([:instance, :federating])
-
- test "it shows if federation is enabled/disabled", %{conn: conn} do
- Config.put([:instance, :federating], true)
-
- response =
- conn
- |> get("/nodeinfo/2.1.json")
- |> json_response(:ok)
-
- assert response["metadata"]["federation"]["enabled"] == true
-
- Config.put([:instance, :federating], false)
-
- response =
- conn
- |> get("/nodeinfo/2.1.json")
- |> json_response(:ok)
-
- assert response["metadata"]["federation"]["enabled"] == false
- end
- end
-
- test "it shows default features flags", %{conn: conn} do
- response =
- conn
- |> get("/nodeinfo/2.1.json")
- |> json_response(:ok)
-
- default_features = [
- "pleroma_api",
- "mastodon_api",
- "mastodon_api_streaming",
- "polls",
- "pleroma_explicit_addressing",
- "shareable_emoji_packs",
- "multifetch",
- "pleroma_emoji_reactions",
- "pleroma:api/v1/notifications:include_types_filter",
- "pleroma_chat_messages"
- ]
-
- assert MapSet.subset?(
- MapSet.new(default_features),
- MapSet.new(response["metadata"]["features"])
- )
- end
-
- test "it shows MRF transparency data if enabled", %{conn: conn} do
- clear_config([:mrf, :policies], [Pleroma.Web.ActivityPub.MRF.SimplePolicy])
- clear_config([:mrf, :transparency], true)
-
- simple_config = %{"reject" => ["example.com"]}
- clear_config(:mrf_simple, simple_config)
-
- response =
- conn
- |> get("/nodeinfo/2.1.json")
- |> json_response(:ok)
-
- assert response["metadata"]["federation"]["mrf_simple"] == simple_config
- end
-
- test "it performs exclusions from MRF transparency data if configured", %{conn: conn} do
- clear_config([:mrf, :policies], [Pleroma.Web.ActivityPub.MRF.SimplePolicy])
- clear_config([:mrf, :transparency], true)
- clear_config([:mrf, :transparency_exclusions], ["other.site"])
-
- simple_config = %{"reject" => ["example.com", "other.site"]}
- clear_config(:mrf_simple, simple_config)
-
- expected_config = %{"reject" => ["example.com"]}
-
- response =
- conn
- |> get("/nodeinfo/2.1.json")
- |> json_response(:ok)
-
- assert response["metadata"]["federation"]["mrf_simple"] == expected_config
- assert response["metadata"]["federation"]["exclusions"] == true
- end
-end