diff options
Diffstat (limited to 'test')
21 files changed, 196 insertions, 138 deletions
diff --git a/test/formatter_test.exs b/test/formatter_test.exs index 13084baa7..e4da84c10 100644 --- a/test/formatter_test.exs +++ b/test/formatter_test.exs @@ -110,7 +110,7 @@ defmodule Pleroma.FormatterTest do        archaeme =          insert(:user, %{            nickname: "archaeme", -          info: %{"source_data" => %{"url" => "https://archeme/@archaeme"}} +          info: %Pleroma.User.Info{source_data: %{"url" => "https://archeme/@archaeme"}}          })        archaeme_remote = insert(:user, %{nickname: "archaeme@archae.me"}) diff --git a/test/plugs/user_enabled_plug_test.exs b/test/plugs/user_enabled_plug_test.exs index ee4f72ccf..eeb167933 100644 --- a/test/plugs/user_enabled_plug_test.exs +++ b/test/plugs/user_enabled_plug_test.exs @@ -13,7 +13,7 @@ defmodule Pleroma.Plugs.UserEnabledPlugTest do    end    test "with a user that is deactivated, it removes that user", %{conn: conn} do -    user = insert(:user, info: %{"deactivated" => true}) +    user = insert(:user, info: %{deactivated: true})      conn =        conn diff --git a/test/plugs/user_is_admin_plug_test.exs b/test/plugs/user_is_admin_plug_test.exs index ddf9eb139..031b2f466 100644 --- a/test/plugs/user_is_admin_plug_test.exs +++ b/test/plugs/user_is_admin_plug_test.exs @@ -5,7 +5,7 @@ defmodule Pleroma.Plugs.UserIsAdminPlugTest do    import Pleroma.Factory    test "accepts a user that is admin", %{conn: conn} do -    user = insert(:user, info: %{"is_admin" => true}) +    user = insert(:user, info: %{is_admin: true})      conn =        build_conn() diff --git a/test/support/factory.ex b/test/support/factory.ex index 4f5060abf..2889d8977 100644 --- a/test/support/factory.ex +++ b/test/support/factory.ex @@ -7,7 +7,8 @@ defmodule Pleroma.Factory do        email: sequence(:email, &"user#{&1}@example.com"),        nickname: sequence(:nickname, &"nick#{&1}"),        password_hash: Comeonin.Pbkdf2.hashpwsalt("test"), -      bio: sequence(:bio, &"Tester Number #{&1}") +      bio: sequence(:bio, &"Tester Number #{&1}"), +      info: %{}      }      %{ diff --git a/test/user_test.exs b/test/user_test.exs index 231f1d94d..62104df90 100644 --- a/test/user_test.exs +++ b/test/user_test.exs @@ -34,14 +34,14 @@ defmodule Pleroma.UserTest do      user = Repo.get(User, user.id)      followed = User.get_by_ap_id(followed.ap_id) -    assert followed.info["follower_count"] == 1 +    assert followed.info.follower_count == 1      assert User.ap_followers(followed) in user.following    end    test "can't follow a deactivated users" do      user = insert(:user) -    followed = insert(:user, info: %{"deactivated" => true}) +    followed = insert(:user, info: %{deactivated: true})      {:error, _} = User.follow(user, followed)    end @@ -56,8 +56,8 @@ defmodule Pleroma.UserTest do    end    test "local users do not automatically follow local locked accounts" do -    follower = insert(:user, info: %{"locked" => true}) -    followed = insert(:user, info: %{"locked" => true}) +    follower = insert(:user, info: %{locked: true}) +    followed = insert(:user, info: %{locked: true})      {:ok, follower} = User.maybe_direct_follow(follower, followed) @@ -185,12 +185,14 @@ defmodule Pleroma.UserTest do            local: false,            nickname: "admin@mastodon.example.org",            ap_id: "http://mastodon.example.org/users/admin", -          last_refreshed_at: a_week_ago +          last_refreshed_at: a_week_ago, +          info: %{}          )        assert orig_user.last_refreshed_at == a_week_ago        user = User.get_or_fetch_by_ap_id("http://mastodon.example.org/users/admin") +      assert user.info.source_data["endpoints"]        refute user.last_refreshed_at == orig_user.last_refreshed_at      end @@ -311,45 +313,45 @@ defmodule Pleroma.UserTest do        user = User.get_by_ap_id(note.data["actor"]) -      assert user.info["note_count"] == nil +      assert user.info.note_count == 0        {:ok, user} = User.update_note_count(user) -      assert user.info["note_count"] == 1 +      assert user.info.note_count == 1      end      test "it increases the info->note_count property" do        note = insert(:note)        user = User.get_by_ap_id(note.data["actor"]) -      assert user.info["note_count"] == nil +      assert user.info.note_count == 0        {:ok, user} = User.increase_note_count(user) -      assert user.info["note_count"] == 1 +      assert user.info.note_count == 1        {:ok, user} = User.increase_note_count(user) -      assert user.info["note_count"] == 2 +      assert user.info.note_count == 2      end      test "it decreases the info->note_count property" do        note = insert(:note)        user = User.get_by_ap_id(note.data["actor"]) -      assert user.info["note_count"] == nil +      assert user.info.note_count == 0        {:ok, user} = User.increase_note_count(user) -      assert user.info["note_count"] == 1 +      assert user.info.note_count == 1        {:ok, user} = User.decrease_note_count(user) -      assert user.info["note_count"] == 0 +      assert user.info.note_count == 0        {:ok, user} = User.decrease_note_count(user) -      assert user.info["note_count"] == 0 +      assert user.info.note_count == 0      end      test "it sets the info->follower_count property" do @@ -358,11 +360,11 @@ defmodule Pleroma.UserTest do        User.follow(follower, user) -      assert user.info["follower_count"] == nil +      assert user.info.follower_count == 0        {:ok, user} = User.update_follower_count(user) -      assert user.info["follower_count"] == 1 +      assert user.info.follower_count == 1      end    end @@ -489,11 +491,11 @@ defmodule Pleroma.UserTest do    test ".deactivate can de-activate then re-activate a user" do      user = insert(:user) -    assert false == !!user.info["deactivated"] +    assert false == user.info.deactivated      {:ok, user} = User.deactivate(user) -    assert true == user.info["deactivated"] +    assert true == user.info.deactivated      {:ok, user} = User.deactivate(user, false) -    assert false == !!user.info["deactivated"] +    assert false == user.info.deactivated    end    test ".delete deactivates a user, all follow relationships and all create activities" do @@ -517,7 +519,7 @@ defmodule Pleroma.UserTest do      follower = Repo.get(User, follower.id)      user = Repo.get(User, user.id) -    assert user.info["deactivated"] +    assert user.info.deactivated      refute User.following?(user, followed)      refute User.following?(followed, follower) @@ -546,7 +548,7 @@ defmodule Pleroma.UserTest do      end      test "html_filter_policy returns TwitterText scrubber when rich-text is disabled" do -      user = insert(:user, %{info: %{"no_rich_text" => true}}) +      user = insert(:user, %{info: %{no_rich_text: true}})        assert Pleroma.HTML.Scrubber.TwitterText == User.html_filter_policy(user)      end diff --git a/test/web/activity_pub/activity_pub_test.exs b/test/web/activity_pub/activity_pub_test.exs index 35c381ac3..1d561d38d 100644 --- a/test/web/activity_pub/activity_pub_test.exs +++ b/test/web/activity_pub/activity_pub_test.exs @@ -14,8 +14,8 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do        {:ok, user} = ActivityPub.make_user_from_ap_id(user_id)        assert user.ap_id == user_id        assert user.nickname == "admin@mastodon.example.org" -      assert user.info["source_data"] -      assert user.info["ap_enabled"] +      assert user.info.source_data +      assert user.info.ap_enabled        assert user.follower_address == "http://mastodon.example.org/users/admin/followers"      end    end diff --git a/test/web/activity_pub/transmogrifier_test.exs b/test/web/activity_pub/transmogrifier_test.exs index 829da0a65..e74b8f9a1 100644 --- a/test/web/activity_pub/transmogrifier_test.exs +++ b/test/web/activity_pub/transmogrifier_test.exs @@ -92,7 +92,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do        user = User.get_by_ap_id(object["actor"]) -      assert user.info["note_count"] == 1 +      assert user.info.note_count == 1      end      test "it works for incoming notices with hashtags" do @@ -307,7 +307,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do                 }               ] -      assert user.info["banner"]["url"] == [ +      assert user.info.banner["url"] == [                 %{                   "href" =>                     "https://cd.niu.moe/accounts/headers/000/033/323/original/850b3448fa5fd477.png" @@ -337,7 +337,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do        {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(update_data)        user = User.get_cached_by_ap_id(data["actor"]) -      assert user.info["locked"] == true +      assert user.info.locked == true      end      test "it works for incoming deletes" do @@ -543,7 +543,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do      test "it works for incoming accepts which were orphaned" do        follower = insert(:user) -      followed = insert(:user, %{info: %{"locked" => true}}) +      followed = insert(:user, %{info: %User.Info{locked: true}})        {:ok, follow_activity} = ActivityPub.follow(follower, followed) @@ -565,7 +565,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do      test "it works for incoming accepts which are referenced by IRI only" do        follower = insert(:user) -      followed = insert(:user, %{info: %{"locked" => true}}) +      followed = insert(:user, %{info: %User.Info{locked: true}})        {:ok, follow_activity} = ActivityPub.follow(follower, followed) @@ -585,7 +585,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do      test "it fails for incoming accepts which cannot be correlated" do        follower = insert(:user) -      followed = insert(:user, %{info: %{"locked" => true}}) +      followed = insert(:user, %{info: %User.Info{locked: true}})        accept_data =          File.read!("test/fixtures/mastodon-accept-activity.json") @@ -604,7 +604,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do      test "it fails for incoming rejects which cannot be correlated" do        follower = insert(:user) -      followed = insert(:user, %{info: %{"locked" => true}}) +      followed = insert(:user, %{info: %User.Info{locked: true}})        accept_data =          File.read!("test/fixtures/mastodon-reject-activity.json") @@ -623,7 +623,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do      test "it works for incoming rejects which are orphaned" do        follower = insert(:user) -      followed = insert(:user, %{info: %{"locked" => true}}) +      followed = insert(:user, %{info: %User.Info{locked: true}})        {:ok, follower} = User.follow(follower, followed)        {:ok, _follow_activity} = ActivityPub.follow(follower, followed) @@ -648,7 +648,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do      test "it works for incoming rejects which are referenced by IRI only" do        follower = insert(:user) -      followed = insert(:user, %{info: %{"locked" => true}}) +      followed = insert(:user, %{info: %User.Info{locked: true}})        {:ok, follower} = User.follow(follower, followed)        {:ok, follow_activity} = ActivityPub.follow(follower, followed) @@ -815,18 +815,18 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do        assert "http://localhost:4001/users/rye@niu.moe/followers" in activity.recipients        user = Repo.get(User, user.id) -      assert user.info["note_count"] == 1 +      assert user.info.note_count == 1        {:ok, user} = Transmogrifier.upgrade_user_from_ap_id("https://niu.moe/users/rye") -      assert user.info["ap_enabled"] -      assert user.info["note_count"] == 1 +      assert user.info.ap_enabled +      assert user.info.note_count == 1        assert user.follower_address == "https://niu.moe/users/rye/followers"        # Wait for the background task        :timer.sleep(1000)        user = Repo.get(User, user.id) -      assert user.info["note_count"] == 1 +      assert user.info.note_count == 1        activity = Repo.get(Activity, activity.id)        assert user.follower_address in activity.recipients @@ -847,7 +847,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do                       "https://cdn.niu.moe/accounts/headers/000/033/323/original/850b3448fa5fd477.png"                   }                 ] -             } = user.info["banner"] +             } = user.info.banner        refute "..." in activity.recipients diff --git a/test/web/admin_api/admin_api_controller_test.exs b/test/web/admin_api/admin_api_controller_test.exs index fa0cb71bf..9634ad7c5 100644 --- a/test/web/admin_api/admin_api_controller_test.exs +++ b/test/web/admin_api/admin_api_controller_test.exs @@ -8,7 +8,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do    describe "/api/pleroma/admin/user" do      test "Delete" do -      admin = insert(:user, info: %{"is_admin" => true}) +      admin = insert(:user, info: %{is_admin: true})        user = insert(:user)        conn = @@ -21,7 +21,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do      end      test "Create" do -      admin = insert(:user, info: %{"is_admin" => true}) +      admin = insert(:user, info: %{is_admin: true})        conn =          build_conn() @@ -39,7 +39,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do    describe "/api/pleroma/admin/permission_group" do      test "GET is giving user_info" do -      admin = insert(:user, info: %{"is_admin" => true}) +      admin = insert(:user, info: %{is_admin: true})        conn =          build_conn() @@ -47,33 +47,30 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do          |> put_req_header("accept", "application/json")          |> get("/api/pleroma/admin/permission_group/#{admin.nickname}") -      assert json_response(conn, 200) == admin.info +      assert json_response(conn, 200) == %{ +               "is_admin" => true, +               "is_moderator" => false +             }      end      test "/:right POST, can add to a permission group" do -      admin = insert(:user, info: %{"is_admin" => true}) +      admin = insert(:user, info: %{is_admin: true})        user = insert(:user) -      user_info = -        user.info -        |> Map.put("is_admin", true) -        conn =          build_conn()          |> assign(:user, admin)          |> put_req_header("accept", "application/json")          |> post("/api/pleroma/admin/permission_group/#{user.nickname}/admin") -      assert json_response(conn, 200) == user_info +      assert json_response(conn, 200) == %{ +               "is_admin" => true +             }      end      test "/:right DELETE, can remove from a permission group" do -      admin = insert(:user, info: %{"is_admin" => true}) -      user = insert(:user, info: %{"is_admin" => true}) - -      user_info = -        user.info -        |> Map.put("is_admin", false) +      admin = insert(:user, info: %{is_admin: true}) +      user = insert(:user, info: %{is_admin: true})        conn =          build_conn() @@ -81,12 +78,14 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do          |> put_req_header("accept", "application/json")          |> delete("/api/pleroma/admin/permission_group/#{user.nickname}/admin") -      assert json_response(conn, 200) == user_info +      assert json_response(conn, 200) == %{ +               "is_admin" => false +             }      end    end    test "/api/pleroma/admin/invite_token" do -    admin = insert(:user, info: %{"is_admin" => true}) +    admin = insert(:user, info: %{is_admin: true})      conn =        build_conn() @@ -98,8 +97,8 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do    end    test "/api/pleroma/admin/password_reset" do -    admin = insert(:user, info: %{"is_admin" => true}) -    user = insert(:user, info: %{"is_admin" => true}) +    admin = insert(:user, info: %{is_admin: true}) +    user = insert(:user)      conn =        build_conn() diff --git a/test/web/common_api/common_api_test.exs b/test/web/common_api/common_api_test.exs index cd36e409c..8fc65f4c0 100644 --- a/test/web/common_api/common_api_test.exs +++ b/test/web/common_api/common_api_test.exs @@ -17,7 +17,7 @@ defmodule Pleroma.Web.CommonAPI.Test do      CommonAPI.update(user)      user = User.get_cached_by_ap_id(user.ap_id) -    [karjalanpiirakka] = user.info["source_data"]["tag"] +    [karjalanpiirakka] = user.info.source_data["tag"]      assert karjalanpiirakka["name"] == ":karjalanpiirakka:"    end diff --git a/test/web/mastodon_api/account_view_test.exs b/test/web/mastodon_api/account_view_test.exs index dc52b92bc..a2d3a2547 100644 --- a/test/web/mastodon_api/account_view_test.exs +++ b/test/web/mastodon_api/account_view_test.exs @@ -17,7 +17,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do      user =        insert(:user, %{ -        info: %{"note_count" => 5, "follower_count" => 3, "source_data" => source_data}, +        info: %{note_count: 5, follower_count: 3, source_data: source_data},          nickname: "shp@shitposter.club",          name: ":karjalanpiirakka: shp",          bio: "<script src=\"invalid-html\"></script><span>valid html</span>", @@ -63,7 +63,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do    test "Represent a Service(bot) account" do      user =        insert(:user, %{ -        info: %{"note_count" => 5, "follower_count" => 3, "source_data" => %{"type" => "Service"}}, +        info: %{note_count: 5, follower_count: 3, source_data: %{"type" => "Service"}},          nickname: "shp@shitposter.club",          inserted_at: ~N[2017-08-15 15:47:06.597036]        }) diff --git a/test/web/mastodon_api/mastodon_api_controller_test.exs b/test/web/mastodon_api/mastodon_api_controller_test.exs index ad67cae6b..7042a6ace 100644 --- a/test/web/mastodon_api/mastodon_api_controller_test.exs +++ b/test/web/mastodon_api/mastodon_api_controller_test.exs @@ -252,7 +252,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do    end    test "verify_credentials default scope unlisted", %{conn: conn} do -    user = insert(:user, %{info: %{"default_scope" => "unlisted"}}) +    user = insert(:user, %{info: %Pleroma.User.Info{default_scope: "unlisted"}})      conn =        conn @@ -845,7 +845,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do    describe "locked accounts" do      test "/api/v1/follow_requests works" do -      user = insert(:user, %{info: %{"locked" => true}}) +      user = insert(:user, %{info: %Pleroma.User.Info{locked: true}})        other_user = insert(:user)        {:ok, activity} = ActivityPub.follow(other_user, user) @@ -865,7 +865,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do      end      test "/api/v1/follow_requests/:id/authorize works" do -      user = insert(:user, %{info: %{"locked" => true}}) +      user = insert(:user, %{info: %Pleroma.User.Info{locked: true}})        other_user = insert(:user)        {:ok, activity} = ActivityPub.follow(other_user, user) @@ -890,7 +890,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do      end      test "verify_credentials", %{conn: conn} do -      user = insert(:user, %{info: %{"default_scope" => "private"}}) +      user = insert(:user, %{info: %Pleroma.User.Info{default_scope: "private"}})        conn =          conn @@ -902,7 +902,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do      end      test "/api/v1/follow_requests/:id/reject works" do -      user = insert(:user, %{info: %{"locked" => true}}) +      user = insert(:user, %{info: %Pleroma.User.Info{locked: true}})        other_user = insert(:user)        {:ok, activity} = ActivityPub.follow(other_user, user) @@ -1105,7 +1105,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do      refute User.blocks?(user, other_user)    end -  test "getting a list of domain blocks" do +  test "getting a list of domain blocks", %{conn: conn} do      user = insert(:user)      {:ok, user} = User.block_domain(user, "bad.site") @@ -1263,6 +1263,18 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do        assert user["note"] == "I drink #cofe"      end +    test "updates the user's locking status", %{conn: conn} do +      user = insert(:user) + +      conn = +        conn +        |> assign(:user, user) +        |> patch("/api/v1/accounts/update_credentials", %{locked: "true"}) + +      assert user = json_response(conn, 200) +      assert user["locked"] == true +    end +      test "updates the user's name", %{conn: conn} do        user = insert(:user) @@ -1289,8 +1301,8 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do          |> assign(:user, user)          |> patch("/api/v1/accounts/update_credentials", %{"avatar" => new_avatar}) -      assert user = json_response(conn, 200) -      assert user["avatar"] != "https://placehold.it/48x48" +      assert user_response = json_response(conn, 200) +      assert user_response["avatar"] != User.avatar_url(user)      end      test "updates the user's banner", %{conn: conn} do @@ -1307,8 +1319,8 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do          |> assign(:user, user)          |> patch("/api/v1/accounts/update_credentials", %{"header" => new_header}) -      assert user = json_response(conn, 200) -      assert user["header"] != "https://placehold.it/700x335" +      assert user_response = json_response(conn, 200) +      assert user_response["header"] != User.banner_url(user)      end    end diff --git a/test/web/node_info_test.exs b/test/web/node_info_test.exs index a6376453c..a5b0b7869 100644 --- a/test/web/node_info_test.exs +++ b/test/web/node_info_test.exs @@ -4,7 +4,7 @@ defmodule Pleroma.Web.NodeInfoTest do    import Pleroma.Factory    test "nodeinfo shows staff accounts", %{conn: conn} do -    user = insert(:user, %{local: true, info: %{"is_moderator" => true}}) +    user = insert(:user, %{local: true, info: %{is_moderator: true}})      conn =        conn @@ -15,7 +15,7 @@ defmodule Pleroma.Web.NodeInfoTest do      assert user.ap_id in result["metadata"]["staffAccounts"]    end -  test "returns 404 when federation is disabled" do +  test "returns 404 when federation is disabled", %{conn: conn} do      instance =        Application.get_env(:pleroma, :instance)        |> Keyword.put(:federating, false) @@ -37,7 +37,7 @@ defmodule Pleroma.Web.NodeInfoTest do      Application.put_env(:pleroma, :instance, instance)    end -  test "returns 200 when federation is enabled" do +  test "returns 200 when federation is enabled", %{conn: conn} do      conn      |> get("/.well-known/nodeinfo")      |> json_response(200) diff --git a/test/web/ostatus/ostatus_controller_test.exs b/test/web/ostatus/ostatus_controller_test.exs index 371c835c0..e81adde68 100644 --- a/test/web/ostatus/ostatus_controller_test.exs +++ b/test/web/ostatus/ostatus_controller_test.exs @@ -31,14 +31,16 @@ defmodule Pleroma.Web.OStatus.OStatusControllerTest do      # Set a wrong magic-key for a user so it has to refetch      salmon_user = User.get_by_ap_id("http://gs.example.org:4040/index.php/user/1")      # Wrong key -    info = -      salmon_user.info -      |> Map.put( -        "magic_key", -        "RSA.pu0s-halox4tu7wmES1FVSx6u-4wc0YrUFXcqWXZG4-27UmbCOpMQftRCldNRfyA-qLbz-eqiwrong1EwUvjsD4cYbAHNGHwTvDOyx5AKthQUP44ykPv7kjKGh3DWKySJvcs9tlUG87hlo7AvnMo9pwRS_Zz2CacQ-MKaXyDepk=.AQAB" -      ) - -    Repo.update(User.info_changeset(salmon_user, %{info: info})) +    info_cng = +      User.Info.remote_user_creation(salmon_user.info, %{ +        magic_key: +          "RSA.pu0s-halox4tu7wmES1FVSx6u-4wc0YrUFXcqWXZG4-27UmbCOpMQftRCldNRfyA-qLbz-eqiwrong1EwUvjsD4cYbAHNGHwTvDOyx5AKthQUP44ykPv7kjKGh3DWKySJvcs9tlUG87hlo7AvnMo9pwRS_Zz2CacQ-MKaXyDepk=.AQAB" +      }) + +    cng = +      Ecto.Changeset.change(salmon_user) +      |> Ecto.Changeset.put_embed(:info, info_cng) +      |> Repo.update()      conn =        build_conn() diff --git a/test/web/ostatus/ostatus_test.exs b/test/web/ostatus/ostatus_test.exs index f95da8b0a..baa8cac72 100644 --- a/test/web/ostatus/ostatus_test.exs +++ b/test/web/ostatus/ostatus_test.exs @@ -17,7 +17,7 @@ defmodule Pleroma.Web.OStatusTest do      {:ok, [activity]} = OStatus.handle_incoming(incoming)      user = User.get_by_ap_id(activity.data["actor"]) -    assert user.info["note_count"] == 1 +    assert user.info.note_count == 1      assert activity.data["type"] == "Create"      assert activity.data["object"]["type"] == "Note" @@ -319,7 +319,7 @@ defmodule Pleroma.Web.OStatusTest do        assert user.name == "Constance Variable"        assert user.nickname == "lambadalambda@social.heldscal.la"        assert user.local == false -      assert user.info["uri"] == uri +      assert user.info.uri == uri        assert user.ap_id == uri        assert user.bio == "Call me Deacon Blues."        assert user.avatar["type"] == "Image" @@ -329,6 +329,38 @@ defmodule Pleroma.Web.OStatusTest do        assert user == user_again      end +    test "find_or_make_user sets all the nessary input fields" do +      uri = "https://social.heldscal.la/user/23211" +      {:ok, user} = OStatus.find_or_make_user(uri) + +      assert user.info == +               %Pleroma.User.Info{ +                 id: user.info.id, +                 ap_enabled: false, +                 background: nil, +                 banner: %{}, +                 blocks: [], +                 deactivated: false, +                 default_scope: "public", +                 domain_blocks: [], +                 follower_count: 0, +                 is_admin: false, +                 is_moderator: false, +                 keys: nil, +                 locked: false, +                 no_rich_text: false, +                 note_count: 0, +                 settings: nil, +                 source_data: %{}, +                 hub: "https://social.heldscal.la/main/push/hub", +                 magic_key: +                   "RSA.uzg6r1peZU0vXGADWxGJ0PE34WvmhjUmydbX5YYdOiXfODVLwCMi1umGoqUDm-mRu4vNEdFBVJU1CpFA7dKzWgIsqsa501i2XqElmEveXRLvNRWFB6nG03Q5OUY2as8eE54BJm0p20GkMfIJGwP6TSFb-ICp3QjzbatuSPJ6xCE=.AQAB", +                 salmon: "https://social.heldscal.la/main/salmon/user/23211", +                 topic: "https://social.heldscal.la/api/statuses/user_timeline/23211.atom", +                 uri: "https://social.heldscal.la/user/23211" +               } +    end +      test "find_make_or_update_user takes an author element and returns an updated user" do        uri = "https://social.heldscal.la/user/23211" @@ -447,7 +479,7 @@ defmodule Pleroma.Web.OStatusTest do      end    end -  test "it doesn't add nil in the do field" do +  test "it doesn't add nil in the to field" do      incoming = File.read!("test/fixtures/nil_mention_entry.xml")      {:ok, [activity]} = OStatus.handle_incoming(incoming) diff --git a/test/web/ostatus/user_representer_test.exs b/test/web/ostatus/user_representer_test.exs index e41dfeb3d..82fb8e793 100644 --- a/test/web/ostatus/user_representer_test.exs +++ b/test/web/ostatus/user_representer_test.exs @@ -6,7 +6,7 @@ defmodule Pleroma.Web.OStatus.UserRepresenterTest do    alias Pleroma.User    test "returns a user with id, uri, name and link" do -    user = build(:user, nickname: "レイン") +    user = insert(:user, %{nickname: "レイン"})      tuple = UserRepresenter.to_simple_form(user)      res = :xmerl.export_simple_content(tuple, :xmerl_xml) |> to_string diff --git a/test/web/twitter_api/representers/activity_representer_test.exs b/test/web/twitter_api/representers/activity_representer_test.exs index 291fd5237..7cae4e4a1 100644 --- a/test/web/twitter_api/representers/activity_representer_test.exs +++ b/test/web/twitter_api/representers/activity_representer_test.exs @@ -58,7 +58,7 @@ defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenterTest do    end    test "an activity" do -    {:ok, user} = UserBuilder.insert() +    user = insert(:user)      #   {:ok, mentioned_user } = UserBuilder.insert(%{nickname: "shp", ap_id: "shp"})      mentioned_user = insert(:user, %{nickname: "shp"}) diff --git a/test/web/twitter_api/twitter_api_controller_test.exs b/test/web/twitter_api/twitter_api_controller_test.exs index 6bdcb4fd8..89c176da7 100644 --- a/test/web/twitter_api/twitter_api_controller_test.exs +++ b/test/web/twitter_api/twitter_api_controller_test.exs @@ -12,30 +12,41 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do    import Pleroma.Factory -  describe "POST /api/account/verify_credentials" do -    setup [:valid_user] +  describe "POST /api/account/update_profile_banner" do +    test "it updates the banner", %{conn: conn} do +      user = insert(:user) -    test "without valid credentials", %{conn: conn} do -      conn = post(conn, "/api/account/verify_credentials.json") -      assert json_response(conn, 403) == %{"error" => "Invalid credentials."} -    end +      new_banner = +        "data:image/gif;base64,R0lGODlhEAAQAMQAAORHHOVSKudfOulrSOp3WOyDZu6QdvCchPGolfO0o/XBs/fNwfjZ0frl3/zy7////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABAALAAAAAAQABAAAAVVICSOZGlCQAosJ6mu7fiyZeKqNKToQGDsM8hBADgUXoGAiqhSvp5QAnQKGIgUhwFUYLCVDFCrKUE1lBavAViFIDlTImbKC5Gm2hB0SlBCBMQiB0UjIQA7" -    test "with credentials", %{conn: conn, user: user} do -      conn = +      response =          conn -        |> with_credentials(user.nickname, "test") -        |> post("/api/account/verify_credentials.json") +        |> assign(:user, user) +        |> post(authenticated_twitter_api__path(conn, :update_banner), %{"banner" => new_banner}) +        |> json_response(200) +    end +  end -      assert response = json_response(conn, 200) -      assert response == UserView.render("show.json", %{user: user, token: response["token"]}) +  describe "POST /api/qvitter/update_background_image" do +    test "it updates the background", %{conn: conn} do +      user = insert(:user) + +      new_bg = +        "data:image/gif;base64,R0lGODlhEAAQAMQAAORHHOVSKudfOulrSOp3WOyDZu6QdvCchPGolfO0o/XBs/fNwfjZ0frl3/zy7////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABAALAAAAAAQABAAAAVVICSOZGlCQAosJ6mu7fiyZeKqNKToQGDsM8hBADgUXoGAiqhSvp5QAnQKGIgUhwFUYLCVDFCrKUE1lBavAViFIDlTImbKC5Gm2hB0SlBCBMQiB0UjIQA7" + +      response = +        conn +        |> assign(:user, user) +        |> post(authenticated_twitter_api__path(conn, :update_background), %{"img" => new_bg}) +        |> json_response(200)      end    end -  describe "POST /api/account/most_recent_notification" do +  describe "POST /api/account/verify_credentials" do      setup [:valid_user]      test "without valid credentials", %{conn: conn} do -      conn = post(conn, "/api/account/most_recent_notification.json") +      conn = post(conn, "/api/account/verify_credentials.json")        assert json_response(conn, 403) == %{"error" => "Invalid credentials."}      end @@ -43,11 +54,10 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do        conn =          conn          |> with_credentials(user.nickname, "test") -        |> post("/api/account/most_recent_notification.json", %{id: "200"}) +        |> post("/api/account/verify_credentials.json") -      assert json_response(conn, 200) -      user = User.get_by_nickname(user.nickname) -      assert user.info["most_recent_notification"] == 200 +      assert response = json_response(conn, 200) +      assert response == UserView.render("show.json", %{user: user, token: response["token"]})      end    end @@ -87,7 +97,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do    describe "GET /statuses/public_timeline.json" do      test "returns statuses", %{conn: conn} do -      {:ok, user} = UserBuilder.insert() +      user = insert(:user)        activities = ActivityBuilder.insert_list(30, %{}, %{user: user})        ActivityBuilder.insert_list(10, %{}, %{user: user})        since_id = List.last(activities).id @@ -591,7 +601,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do          |> post("/api/blocks/destroy.json", %{user_id: blocked.id})        current_user = Repo.get(User, current_user.id) -      assert current_user.info["blocks"] == [] +      assert current_user.info.blocks == []        assert json_response(conn, 200) ==                 UserView.render("show.json", %{user: blocked, for: current_user}) @@ -966,7 +976,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do          })        user = Repo.get!(User, user.id) -      assert user.info["locked"] == true +      assert user.info.locked == true        assert json_response(conn, 200) == UserView.render("user.json", %{user: user, for: user})      end @@ -982,7 +992,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do          })        user = Repo.get!(User, user.id) -      assert user.info["locked"] == false +      assert user.info.locked == false        assert json_response(conn, 200) == UserView.render("user.json", %{user: user, for: user})      end @@ -1153,10 +1163,10 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do    describe "GET /api/pleroma/friend_requests" do      test "it lists friend requests" do -      user = insert(:user, %{info: %{"locked" => true}}) +      user = insert(:user)        other_user = insert(:user) -      {:ok, activity} = ActivityPub.follow(other_user, user) +      {:ok, _activity} = ActivityPub.follow(other_user, user)        user = Repo.get(User, user.id)        other_user = Repo.get(User, other_user.id) @@ -1175,10 +1185,10 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do    describe "POST /api/pleroma/friendships/approve" do      test "it approves a friend request" do -      user = insert(:user, %{info: %{"locked" => true}}) +      user = insert(:user)        other_user = insert(:user) -      {:ok, activity} = ActivityPub.follow(other_user, user) +      {:ok, _activity} = ActivityPub.follow(other_user, user)        user = Repo.get(User, user.id)        other_user = Repo.get(User, other_user.id) @@ -1198,10 +1208,10 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do    describe "POST /api/pleroma/friendships/deny" do      test "it denies a friend request" do -      user = insert(:user, %{info: %{"locked" => true}}) +      user = insert(:user)        other_user = insert(:user) -      {:ok, activity} = ActivityPub.follow(other_user, user) +      {:ok, _activity} = ActivityPub.follow(other_user, user)        user = Repo.get(User, user.id)        other_user = Repo.get(User, other_user.id) diff --git a/test/web/twitter_api/twitter_api_test.exs b/test/web/twitter_api/twitter_api_test.exs index 8b9920bd9..ec13b89d4 100644 --- a/test/web/twitter_api/twitter_api_test.exs +++ b/test/web/twitter_api/twitter_api_test.exs @@ -10,7 +10,7 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do    test "create a status" do      user = insert(:user) -    _mentioned_user = UserBuilder.insert(%{nickname: "shp", ap_id: "shp"}) +    _mentioned_user = insert(:user, %{nickname: "shp", ap_id: "shp"})      object_data = %{        "type" => "Image", @@ -67,7 +67,7 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do      user = User.get_by_ap_id(user.ap_id) -    assert user.info["note_count"] == 1 +    assert user.info.note_count == 1    end    test "create a status that is a reply" do @@ -116,7 +116,7 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do      assert User.ap_followers(followed) in user.following      followed = User.get_by_ap_id(followed.ap_id) -    assert followed.info["follower_count"] == 1 +    assert followed.info.follower_count == 1      {:error, msg} = TwitterAPI.follow(user, %{"screen_name" => followed.nickname})      assert msg == "Could not follow user: #{followed.nickname} is already on your list." @@ -169,7 +169,7 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do      {:ok, user, _unblocked} = TwitterAPI.block(user, %{"user_id" => unblocked.id})      {:ok, user, _unblocked} = TwitterAPI.unblock(user, %{"user_id" => unblocked.id}) -    assert user.info["blocks"] == [] +    assert user.info.blocks == []    end    test "Unblock another user using screen_name" do @@ -178,7 +178,7 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do      {:ok, user, _unblocked} = TwitterAPI.block(user, %{"screen_name" => unblocked.nickname})      {:ok, user, _unblocked} = TwitterAPI.unblock(user, %{"screen_name" => unblocked.nickname}) -    assert user.info["blocks"] == [] +    assert user.info.blocks == []    end    test "upload a file" do diff --git a/test/web/twitter_api/views/user_view_test.exs b/test/web/twitter_api/views/user_view_test.exs index 2c583c0d3..e69ca24a9 100644 --- a/test/web/twitter_api/views/user_view_test.exs +++ b/test/web/twitter_api/views/user_view_test.exs @@ -31,10 +31,10 @@ defmodule Pleroma.Web.TwitterAPI.UserViewTest do      expected =        "<img height=\"32px\" width=\"32px\" alt=\"karjalanpiirakka\" title=\"karjalanpiirakka\" src=\"/file.png\" /> man" -    user = %{ -      user -      | info: %{ -          "source_data" => %{ +    user = +      insert(:user, %{ +        info: %{ +          source_data: %{              "tag" => [                %{                  "type" => "Emoji", @@ -43,10 +43,10 @@ defmodule Pleroma.Web.TwitterAPI.UserViewTest do                }              ]            } -        } -    } +        }, +        name: ":karjalanpiirakka: man" +      }) -    user = %{user | name: ":karjalanpiirakka: man"}      represented = UserView.render("show.json", %{user: user})      assert represented["name_html"] == expected    end @@ -103,7 +103,7 @@ defmodule Pleroma.Web.TwitterAPI.UserViewTest do    end    test "A user for a given other follower", %{user: user} do -    {:ok, follower} = UserBuilder.insert(%{following: [User.ap_followers(user)]}) +    follower = insert(:user, %{following: [User.ap_followers(user)]})      {:ok, user} = User.update_follower_count(user)      image = "http://localhost:4001/images/avi.png"      banner = "http://localhost:4001/images/banner.png" @@ -186,7 +186,7 @@ defmodule Pleroma.Web.TwitterAPI.UserViewTest do    end    test "a user that is a moderator" do -    user = insert(:user, %{info: %{"is_moderator" => true}}) +    user = insert(:user, %{info: %{is_moderator: true}})      represented = UserView.render("show.json", %{user: user, for: user})      assert represented["rights"]["delete_others_notice"] @@ -250,7 +250,7 @@ defmodule Pleroma.Web.TwitterAPI.UserViewTest do      user =        insert(:user, %{          info: %{ -          "source_data" => %{ +          source_data: %{              "attachment" =>                Enum.map(fields, fn field -> Map.put(field, "type", "PropertyValue") end)            } diff --git a/test/web/web_finger/web_finger_test.exs b/test/web/web_finger/web_finger_test.exs index 99bf210ea..28d429565 100644 --- a/test/web/web_finger/web_finger_test.exs +++ b/test/web/web_finger/web_finger_test.exs @@ -99,15 +99,15 @@ defmodule Pleroma.Web.WebFingerTest do    describe "ensure_keys_present" do      test "it creates keys for a user and stores them in info" do        user = insert(:user) -      refute is_binary(user.info["keys"]) +      refute is_binary(user.info.keys)        {:ok, user} = WebFinger.ensure_keys_present(user) -      assert is_binary(user.info["keys"]) +      assert is_binary(user.info.keys)      end      test "it doesn't create keys if there already are some" do -      user = insert(:user, %{info: %{"keys" => "xxx"}}) +      user = insert(:user, %{info: %{keys: "xxx"}})        {:ok, user} = WebFinger.ensure_keys_present(user) -      assert user.info["keys"] == "xxx" +      assert user.info.keys == "xxx"      end    end  end diff --git a/test/web/websub/websub_test.exs b/test/web/websub/websub_test.exs index 5914a37fc..da7bc9112 100644 --- a/test/web/websub/websub_test.exs +++ b/test/web/websub/websub_test.exs @@ -99,7 +99,7 @@ defmodule Pleroma.Web.WebsubTest do    test "initiate a subscription for a given user and topic" do      subscriber = insert(:user) -    user = insert(:user, %{info: %{"topic" => "some_topic", "hub" => "some_hub"}}) +    user = insert(:user, %{info: %Pleroma.User.Info{topic: "some_topic", hub: "some_hub"}})      {:ok, websub} = Websub.subscribe(subscriber, user, &accepting_verifier/1)      assert websub.subscribers == [subscriber.ap_id]  | 
