X-Git-Url: https://git.squeep.com/?a=blobdiff_plain;f=test%2Fuser_search_test.exs;h=48ce973ad255f073eb9bd97817387e20b8559544;hb=aab264db82054df470075c65ca25c42bbcc5d7a8;hp=3c13d8b0f018a884227d5da18aadb9ae9b3cacd1;hpb=371d39e160efa51f2fe608e1788f6b11b89d9839;p=akkoma diff --git a/test/user_search_test.exs b/test/user_search_test.exs index 3c13d8b0f..48ce973ad 100644 --- a/test/user_search_test.exs +++ b/test/user_search_test.exs @@ -255,5 +255,57 @@ defmodule Pleroma.UserSearchTest do [result] = User.search("lain@localhost", resolve: true, for_user: user) assert Map.put(result, :search_rank, nil) |> Map.put(:search_type, nil) == local_user end + + test "works with idna domains" do + user = insert(:user, nickname: "lain@" <> to_string(:idna.encode("zetsubou.みんな"))) + + results = User.search("lain@zetsubou.みんな", resolve: false, for_user: user) + + result = List.first(results) + + assert user == result |> Map.put(:search_rank, nil) |> Map.put(:search_type, nil) + end + + test "works with idna domains converted input" do + user = insert(:user, nickname: "lain@" <> to_string(:idna.encode("zetsubou.みんな"))) + + results = + User.search("lain@zetsubou." <> to_string(:idna.encode("zetsubou.みんな")), + resolve: false, + for_user: user + ) + + result = List.first(results) + + assert user == result |> Map.put(:search_rank, nil) |> Map.put(:search_type, nil) + end + + test "works with idna domains and bad chars in domain" do + user = insert(:user, nickname: "lain@" <> to_string(:idna.encode("zetsubou.みんな"))) + + results = + User.search("lain@zetsubou!@#$%^&*()+,-/:;<=>?[]'_{}|~`.みんな", + resolve: false, + for_user: user + ) + + result = List.first(results) + + assert user == result |> Map.put(:search_rank, nil) |> Map.put(:search_type, nil) + end + + test "works with idna domains and query as link" do + user = insert(:user, nickname: "lain@" <> to_string(:idna.encode("zetsubou.みんな"))) + + results = + User.search("https://zetsubou.みんな/users/lain", + resolve: false, + for_user: user + ) + + result = List.first(results) + + assert user == result |> Map.put(:search_rank, nil) |> Map.put(:search_type, nil) + end end end