Clean up account aliases

This commit is contained in:
Alex Gleason 2020-08-07 16:48:03 -05:00
commit 4af1b80381
No known key found for this signature in database
GPG key ID: 7211D1F99744FBB7
17 changed files with 47 additions and 222 deletions

View file

@ -2024,48 +2024,4 @@ 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 "add_aliases/2 with invalid alias" do
user = insert(:user)
{:error, _} = User.add_aliases(user, ["invalid_alias"])
{:error, _} = User.add_aliases(user, ["http://still_invalid"])
{:error, _} = User.add_aliases(user, ["http://validalias.com/users/dude", "invalid_alias"])
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

View file

@ -216,6 +216,16 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController.UpdateCredentialsTest do
assert user_data["display_name"] == "markorepairs"
end
test "updates the user's AKAs", %{conn: conn} do
conn =
patch(conn, "/api/v1/accounts/update_credentials", %{
"also_known_as" => ["https://mushroom.kingdom/users/mario"]
})
assert user_data = json_response_and_validate_schema(conn, 200)
assert user_data["pleroma"]["also_known_as"] == ["https://mushroom.kingdom/users/mario"]
end
test "updates the user's avatar", %{user: user, conn: conn} do
new_avatar = %Plug.Upload{
content_type: "image/jpg",

View file

@ -38,7 +38,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do
inserted_at: ~N[2017-08-15 15:47:06.597036],
emoji: %{"karjalanpiirakka" => "/file.png"},
raw_bio: "valid html. a\nb\nc\nd\nf '&<>\"",
ap_aliases: ["https://shitposter.zone/users/shp"]
also_known_as: ["https://shitposter.zone/users/shp"]
})
expected = %{
@ -78,7 +78,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do
},
pleroma: %{
ap_id: user.ap_id,
ap_aliases: ["https://shitposter.zone/users/shp"],
also_known_as: ["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",
@ -174,7 +174,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do
},
pleroma: %{
ap_id: user.ap_id,
ap_aliases: [],
also_known_as: [],
background_image: nil,
favicon:
"https://shitposter.club/plugins/Qvitter/img/gnusocial-favicons/favicon-16x16.png",

View file

@ -281,33 +281,4 @@ 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

View file

@ -33,7 +33,7 @@ defmodule Pleroma.Web.WebFinger.WebFingerControllerTest do
user =
insert(:user,
ap_id: "https://hyrule.world/users/zelda",
ap_aliases: ["https://mushroom.kingdom/users/toad"]
also_known_as: ["https://mushroom.kingdom/users/toad"]
)
response =
@ -61,14 +61,20 @@ defmodule Pleroma.Web.WebFinger.WebFingerControllerTest do
end
test "Webfinger XML" do
user = insert(:user)
user =
insert(:user,
ap_id: "https://hyrule.world/users/zelda",
also_known_as: ["https://mushroom.kingdom/users/toad"]
)
response =
build_conn()
|> put_req_header("accept", "application/xrd+xml")
|> get("/.well-known/webfinger?resource=acct:#{user.nickname}@localhost")
|> response(200)
assert response(response, 200)
assert response =~ "<Alias>https://hyrule.world/users/zelda</Alias>"
assert response =~ "<Alias>https://mushroom.kingdom/users/toad</Alias>"
end
test "it returns 404 when user isn't found (XML)" do