2020-01-26 21:36:50 +01:00
|
|
|
defmodule Mobilizon.Web.NodeInfoControllerTest do
|
|
|
|
use Mobilizon.Web.ConnCase
|
2018-08-01 14:45:18 +02:00
|
|
|
|
2019-09-08 00:05:54 +02:00
|
|
|
alias Mobilizon.Config
|
2023-12-14 16:31:58 +01:00
|
|
|
alias Mobilizon.Federation.ActivityPub.Relay
|
2018-08-01 14:45:18 +02:00
|
|
|
|
2023-12-01 12:06:18 +01:00
|
|
|
use Mobilizon.Web, :verified_routes
|
2019-09-22 18:29:13 +02:00
|
|
|
|
2018-08-01 14:45:18 +02:00
|
|
|
test "Get node info schemas", %{conn: conn} do
|
2023-12-01 12:06:18 +01:00
|
|
|
conn = get(conn, url(~p"/.well-known/nodeinfo"))
|
2018-08-01 14:45:18 +02:00
|
|
|
|
2023-12-14 16:31:58 +01:00
|
|
|
relay = Relay.get_actor()
|
|
|
|
relay_url = relay.url
|
|
|
|
|
2018-08-01 14:45:18 +02:00
|
|
|
assert json_response(conn, 200) == %{
|
|
|
|
"links" => [
|
2019-07-08 17:26:47 +02:00
|
|
|
%{
|
2023-12-01 12:06:18 +01:00
|
|
|
"href" => url(~p"/.well-known/nodeinfo/2.0"),
|
2019-07-08 17:26:47 +02:00
|
|
|
"rel" => "http://nodeinfo.diaspora.software/ns/schema/2.0"
|
|
|
|
},
|
2018-08-01 14:45:18 +02:00
|
|
|
%{
|
2023-12-01 12:06:18 +01:00
|
|
|
"href" => url(~p"/.well-known/nodeinfo/2.1"),
|
2019-05-24 09:18:19 +02:00
|
|
|
"rel" => "http://nodeinfo.diaspora.software/ns/schema/2.1"
|
2023-12-14 16:31:58 +01:00
|
|
|
},
|
|
|
|
%{
|
|
|
|
"href" => relay_url,
|
|
|
|
"rel" => "https://www.w3.org/ns/activitystreams#Application"
|
2018-08-01 14:45:18 +02:00
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
end
|
|
|
|
|
|
|
|
test "Get node info", %{conn: conn} do
|
2019-09-09 09:31:08 +02:00
|
|
|
# We clear the cache because it might have been initialized by other tests
|
|
|
|
Cachex.clear(:statistics)
|
2023-12-01 12:06:18 +01:00
|
|
|
conn = get(conn, url(~p"/.well-known/nodeinfo/2.1"))
|
2018-08-01 14:45:18 +02:00
|
|
|
resp = json_response(conn, 200)
|
|
|
|
|
2018-11-12 18:17:53 +01:00
|
|
|
assert resp == %{
|
2019-07-08 17:26:47 +02:00
|
|
|
"metadata" => %{
|
2019-09-08 00:05:54 +02:00
|
|
|
"nodeName" => Config.instance_name(),
|
|
|
|
"nodeDescription" => Config.instance_description()
|
2019-07-08 17:26:47 +02:00
|
|
|
},
|
2019-09-08 00:05:54 +02:00
|
|
|
"openRegistrations" => Config.instance_registrations_open?(),
|
2018-08-01 14:45:18 +02:00
|
|
|
"protocols" => ["activitypub"],
|
2019-07-08 17:26:47 +02:00
|
|
|
"services" => %{"inbound" => [], "outbound" => ["atom1.0"]},
|
2019-05-24 09:18:19 +02:00
|
|
|
"software" => %{
|
2019-09-09 09:31:08 +02:00
|
|
|
"name" => "Mobilizon",
|
2019-09-08 00:05:54 +02:00
|
|
|
"version" => Config.instance_version(),
|
|
|
|
"repository" => Config.instance_repository()
|
2019-05-24 09:18:19 +02:00
|
|
|
},
|
2018-11-12 18:17:53 +01:00
|
|
|
"usage" => %{"localComments" => 0, "localPosts" => 0, "users" => %{"total" => 0}},
|
2019-05-24 09:18:19 +02:00
|
|
|
"version" => "2.1"
|
2018-08-01 14:45:18 +02:00
|
|
|
}
|
|
|
|
end
|
2018-11-28 10:49:16 +01:00
|
|
|
|
|
|
|
test "Get node info with non supported version (1.0)", %{conn: conn} do
|
2023-12-01 12:06:18 +01:00
|
|
|
conn = get(conn, url(~p"/.well-known/nodeinfo/1.0"))
|
2018-11-28 10:49:16 +01:00
|
|
|
|
|
|
|
assert json_response(conn, 404) == %{"error" => "Nodeinfo schema version not handled"}
|
|
|
|
end
|
2018-08-01 14:45:18 +02:00
|
|
|
end
|