Add account aliases
This commit is contained in:
parent
3a2b2cb6f2
commit
d0eb43b58b
13 changed files with 220 additions and 4 deletions
|
|
@ -1858,4 +1858,41 @@ defmodule Pleroma.UserTest do
|
|||
|
||||
assert User.avatar_url(user, no_default: true) == nil
|
||||
end
|
||||
|
||||
test "add_aliases/2" do
|
||||
user = insert(:user)
|
||||
|
||||
aliases = [
|
||||
"https://gleasonator.com/users/alex",
|
||||
"https://gleasonator.com/users/alex",
|
||||
"https://animalliberation.social/users/alex"
|
||||
]
|
||||
|
||||
{:ok, user} = User.add_aliases(user, aliases)
|
||||
|
||||
assert user.ap_aliases == [
|
||||
"https://animalliberation.social/users/alex",
|
||||
"https://gleasonator.com/users/alex"
|
||||
]
|
||||
end
|
||||
|
||||
test "delete_aliases/2" do
|
||||
user =
|
||||
insert(:user,
|
||||
ap_aliases: [
|
||||
"https://animalliberation.social/users/alex",
|
||||
"https://benis.social/users/benis",
|
||||
"https://gleasonator.com/users/alex"
|
||||
]
|
||||
)
|
||||
|
||||
aliases = ["https://benis.social/users/benis"]
|
||||
|
||||
{:ok, user} = User.delete_aliases(user, aliases)
|
||||
|
||||
assert user.ap_aliases == [
|
||||
"https://animalliberation.social/users/alex",
|
||||
"https://gleasonator.com/users/alex"
|
||||
]
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -37,7 +37,8 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do
|
|||
"<script src=\"invalid-html\"></script><span>valid html</span>. a<br>b<br/>c<br >d<br />f '&<>\"",
|
||||
inserted_at: ~N[2017-08-15 15:47:06.597036],
|
||||
emoji: %{"karjalanpiirakka" => "/file.png"},
|
||||
raw_bio: "valid html. a\nb\nc\nd\nf '&<>\""
|
||||
raw_bio: "valid html. a\nb\nc\nd\nf '&<>\"",
|
||||
ap_aliases: ["https://shitposter.zone/users/shp"]
|
||||
})
|
||||
|
||||
expected = %{
|
||||
|
|
@ -77,6 +78,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do
|
|||
},
|
||||
pleroma: %{
|
||||
ap_id: user.ap_id,
|
||||
ap_aliases: ["https://shitposter.zone/users/shp"],
|
||||
background_image: "https://example.com/images/asuka_hospital.png",
|
||||
favicon:
|
||||
"https://shitposter.club/plugins/Qvitter/img/gnusocial-favicons/favicon-16x16.png",
|
||||
|
|
@ -171,6 +173,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do
|
|||
},
|
||||
pleroma: %{
|
||||
ap_id: user.ap_id,
|
||||
ap_aliases: [],
|
||||
background_image: nil,
|
||||
favicon:
|
||||
"https://shitposter.club/plugins/Qvitter/img/gnusocial-favicons/favicon-16x16.png",
|
||||
|
|
|
|||
|
|
@ -281,4 +281,33 @@ defmodule Pleroma.Web.PleromaAPI.AccountControllerTest do
|
|||
assert %{"error" => "Record not found"} = json_response_and_validate_schema(conn, 404)
|
||||
end
|
||||
end
|
||||
|
||||
describe "aliases controllers" do
|
||||
setup do: oauth_access(["write:accounts"])
|
||||
|
||||
test "adds aliases", %{conn: conn} do
|
||||
aliases = ["https://gleasonator.com/users/alex"]
|
||||
|
||||
conn =
|
||||
conn
|
||||
|> put_req_header("content-type", "application/json")
|
||||
|> post("/api/v1/pleroma/accounts/ap_aliases", %{"aliases" => aliases})
|
||||
|
||||
assert %{"pleroma" => %{"ap_aliases" => res}} = json_response_and_validate_schema(conn, 200)
|
||||
assert Enum.count(res) == 1
|
||||
end
|
||||
|
||||
test "deletes aliases", %{conn: conn, user: user} do
|
||||
aliases = ["https://gleasonator.com/users/alex"]
|
||||
User.add_aliases(user, aliases)
|
||||
|
||||
conn =
|
||||
conn
|
||||
|> put_req_header("content-type", "application/json")
|
||||
|> delete("/api/v1/pleroma/accounts/ap_aliases", %{"aliases" => aliases})
|
||||
|
||||
assert %{"pleroma" => %{"ap_aliases" => res}} = json_response_and_validate_schema(conn, 200)
|
||||
assert Enum.count(res) == 0
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -30,14 +30,24 @@ defmodule Pleroma.Web.WebFinger.WebFingerControllerTest do
|
|||
end
|
||||
|
||||
test "Webfinger JRD" do
|
||||
user = insert(:user)
|
||||
user =
|
||||
insert(:user,
|
||||
ap_id: "https://hyrule.world/users/zelda",
|
||||
ap_aliases: ["https://mushroom.kingdom/users/toad"]
|
||||
)
|
||||
|
||||
response =
|
||||
build_conn()
|
||||
|> put_req_header("accept", "application/jrd+json")
|
||||
|> get("/.well-known/webfinger?resource=acct:#{user.nickname}@localhost")
|
||||
|> json_response(200)
|
||||
|
||||
assert json_response(response, 200)["subject"] == "acct:#{user.nickname}@localhost"
|
||||
assert response["subject"] == "acct:#{user.nickname}@localhost"
|
||||
|
||||
assert response["aliases"] == [
|
||||
"https://hyrule.world/users/zelda",
|
||||
"https://mushroom.kingdom/users/toad"
|
||||
]
|
||||
end
|
||||
|
||||
test "it returns 404 when user isn't found (JSON)" do
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue