From 069daf644d984c479eae6483595a3307e923950b Mon Sep 17 00:00:00 2001 From: dtluna Date: Tue, 20 Jun 2017 00:12:37 +0300 Subject: Replace UserRepresenter with UserView --- .../representers/activity_representer_test.exs | 10 +-- .../representers/user_representer_test.exs | 87 ---------------------- .../twitter_api/twitter_api_controller_test.exs | 15 ++-- test/web/twitter_api/twitter_api_test.exs | 9 +-- test/web/twitter_api/views/user_view_test.exs | 82 ++++++++++++++++++++ 5 files changed, 99 insertions(+), 104 deletions(-) delete mode 100644 test/web/twitter_api/representers/user_representer_test.exs create mode 100644 test/web/twitter_api/views/user_view_test.exs (limited to 'test') diff --git a/test/web/twitter_api/representers/activity_representer_test.exs b/test/web/twitter_api/representers/activity_representer_test.exs index 96178c2cc..781ef8536 100644 --- a/test/web/twitter_api/representers/activity_representer_test.exs +++ b/test/web/twitter_api/representers/activity_representer_test.exs @@ -1,9 +1,10 @@ defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenterTest do use Pleroma.DataCase alias Pleroma.{User, Activity, Object} - alias Pleroma.Web.TwitterAPI.Representers.{UserRepresenter, ActivityRepresenter, ObjectRepresenter} + alias Pleroma.Web.TwitterAPI.Representers.{ActivityRepresenter, ObjectRepresenter} alias Pleroma.Web.ActivityPub.ActivityPub alias Pleroma.Builders.UserBuilder + alias Pleroma.Web.TwitterAPI.UserView import Pleroma.Factory test "an announce activity" do @@ -18,7 +19,7 @@ defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenterTest do status = ActivityRepresenter.to_map(announce_activity, %{users: [user, activity_actor], announced_activity: note_activity, for: user}) assert status["id"] == announce_activity.id - assert status["user"] == UserRepresenter.to_map(user, %{for: user}) + assert status["user"] == UserView.render("show.json", %{user: user, for: user}) retweeted_status = ActivityRepresenter.to_map(note_activity, %{user: activity_actor, for: user}) assert retweeted_status["repeated"] == true @@ -105,9 +106,8 @@ defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenterTest do expected_status = %{ "id" => activity.id, - "user" => UserRepresenter.to_map(user, %{for: follower}), + "user" => UserView.render("show.json", %{user: user, for: follower}), "is_local" => true, - "attentions" => [], "statusnet_html" => HtmlSanitizeEx.basic_html(content_html), "text" => content, "is_post_verb" => true, @@ -118,7 +118,7 @@ defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenterTest do ObjectRepresenter.to_map(object) ], "attentions" => [ - UserRepresenter.to_map(mentioned_user, %{for: follower}) + UserView.render("show.json", %{user: mentioned_user, for: follower}) ], "fave_num" => 5, "repeat_num" => 3, diff --git a/test/web/twitter_api/representers/user_representer_test.exs b/test/web/twitter_api/representers/user_representer_test.exs deleted file mode 100644 index f62ce1da3..000000000 --- a/test/web/twitter_api/representers/user_representer_test.exs +++ /dev/null @@ -1,87 +0,0 @@ -defmodule Pleroma.Web.TwitterAPI.Representers.UserRepresenterTest do - use Pleroma.DataCase - - alias Pleroma.User - alias Pleroma.Web.TwitterAPI.Representers.UserRepresenter - alias Pleroma.Builders.UserBuilder - - import Pleroma.Factory - - setup do - user = insert(:user, bio: "Here's some html") - [user: user] - end - - test "A user with an avatar object", %{user: user} do - image = "image" - user = %{ user | avatar: %{ "url" => [%{"href" => image}] }} - represented = UserRepresenter.to_map(user) - assert represented["profile_image_url"] == image - end - - test "A user" do - note_activity = insert(:note_activity) - user = User.get_cached_by_ap_id(note_activity.data["actor"]) - follower = insert(:user) - second_follower = insert(:user) - - User.follow(follower, user) - User.follow(second_follower, user) - User.follow(user, follower) - - user = Repo.get!(User, user.id) - - image = "https://placehold.it/48x48" - - created_at = user.inserted_at |> DateTime.from_naive!("Etc/UTC") |> UserRepresenter.format_asctime - - represented = %{ - "id" => user.id, - "name" => user.name, - "screen_name" => user.nickname, - "description" => HtmlSanitizeEx.strip_tags(user.bio), - "created_at" => created_at, - # Fake fields - "favourites_count" => 0, - "statuses_count" => 1, - "friends_count" => 1, - "followers_count" => 2, - "profile_image_url" => image, - "profile_image_url_https" => image, - "profile_image_url_profile_size" => image, - "profile_image_url_original" => image, - "following" => false, - "rights" => %{}, - "statusnet_profile_url" => user.ap_id - } - - assert represented == UserRepresenter.to_map(user) - end - - test "A user for a given other follower", %{user: user} do - {:ok, follower} = UserBuilder.insert(%{following: [User.ap_followers(user)]}) - image = "https://placehold.it/48x48" - created_at = user.inserted_at |> DateTime.from_naive!("Etc/UTC") |> UserRepresenter.format_asctime - represented = %{ - "id" => user.id, - "name" => user.name, - "screen_name" => user.nickname, - "description" => HtmlSanitizeEx.strip_tags(user.bio), - "created_at" => created_at, - # Fake fields - "favourites_count" => 0, - "statuses_count" => 0, - "friends_count" => 0, - "followers_count" => 1, - "profile_image_url" => image, - "profile_image_url_https" => image, - "profile_image_url_profile_size" => image, - "profile_image_url_original" => image, - "following" => true, - "rights" => %{}, - "statusnet_profile_url" => user.ap_id - } - - assert represented == UserRepresenter.to_map(user, %{for: follower}) - end -end diff --git a/test/web/twitter_api/twitter_api_controller_test.exs b/test/web/twitter_api/twitter_api_controller_test.exs index 0e9d29018..5ccced739 100644 --- a/test/web/twitter_api/twitter_api_controller_test.exs +++ b/test/web/twitter_api/twitter_api_controller_test.exs @@ -1,9 +1,10 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do use Pleroma.Web.ConnCase - alias Pleroma.Web.TwitterAPI.Representers.{UserRepresenter, ActivityRepresenter} + alias Pleroma.Web.TwitterAPI.Representers.ActivityRepresenter alias Pleroma.Builders.{ActivityBuilder, UserBuilder} alias Pleroma.{Repo, Activity, User, Object} alias Pleroma.Web.ActivityPub.ActivityPub + alias Pleroma.Web.TwitterAPI.UserView import Pleroma.Factory @@ -19,7 +20,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do |> with_credentials(user.nickname, "test") |> post("/api/account/verify_credentials.json") - assert json_response(conn, 200) == UserRepresenter.to_map(user) + assert json_response(conn, 200) == UserView.render("show.json", %{user: user}) end end @@ -229,7 +230,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do current_user = Repo.get(User, current_user.id) assert current_user.following == [User.ap_followers(followed)] - assert json_response(conn, 200) == UserRepresenter.to_map(followed, %{for: current_user}) + assert json_response(conn, 200) == UserView.render("show.json", %{user: followed, for: current_user}) end end @@ -253,7 +254,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do current_user = Repo.get(User, current_user.id) assert current_user.following == [] - assert json_response(conn, 200) == UserRepresenter.to_map(followed, %{for: current_user}) + assert json_response(conn, 200) == UserView.render("show.json", %{user: followed, for: current_user}) end end @@ -278,7 +279,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do current_user = Repo.get(User, current_user.id) assert is_map(current_user.avatar) - assert json_response(conn, 200) == UserRepresenter.to_map(current_user, %{for: current_user}) + assert json_response(conn, 200) == UserView.render("show.json", %{user: current_user, for: current_user}) end end @@ -368,7 +369,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do user = json_response(conn, 200) fetched_user = Repo.get_by(User, nickname: "lain") - assert user == UserRepresenter.to_map(fetched_user) + assert user == UserView.render("show.json", %{user: fetched_user}) end test "it returns errors on a problem", %{conn: conn} do @@ -396,7 +397,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do conn = conn |> get("/api/externalprofile/show", %{profileurl: user.ap_id}) - assert json_response(conn, 200) == UserRepresenter.to_map(user) + assert json_response(conn, 200) == UserView.render("show.json", %{user: user}) end end diff --git a/test/web/twitter_api/twitter_api_test.exs b/test/web/twitter_api/twitter_api_test.exs index adea67422..4708fe093 100644 --- a/test/web/twitter_api/twitter_api_test.exs +++ b/test/web/twitter_api/twitter_api_test.exs @@ -1,10 +1,9 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do use Pleroma.DataCase alias Pleroma.Builders.{UserBuilder, ActivityBuilder} - alias Pleroma.Web.TwitterAPI.TwitterAPI - alias Pleroma.Web.TwitterAPI.Utils + alias Pleroma.Web.TwitterAPI.{TwitterAPI,UserView,Utils} alias Pleroma.{Activity, User, Object, Repo} - alias Pleroma.Web.TwitterAPI.Representers.{ActivityRepresenter, UserRepresenter} + alias Pleroma.Web.TwitterAPI.Representers.ActivityRepresenter alias Pleroma.Web.ActivityPub.ActivityPub import Pleroma.Factory @@ -303,7 +302,7 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do {:ok, user} = TwitterAPI.register_user(data) fetched_user = Repo.get_by(User, nickname: "lain") - assert user == UserRepresenter.to_map(fetched_user) + assert UserView.render("show.json", %{user: user}) == UserView.render("show.json", %{user: fetched_user}) end test "it returns the error on registration problems" do @@ -358,7 +357,7 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do {:ok, represented} = TwitterAPI.get_external_profile(user, id) remote = User.get_by_ap_id(id) - assert represented == UserRepresenter.to_map(remote, %{for: user}) + assert represented == UserView.render("show.json", %{user: remote, for: user}) # Also fetches the feed. assert Activity.get_create_activity_by_object_ap_id("tag:mastodon.social,2017-04-05:objectId=1641750:objectType=Status") diff --git a/test/web/twitter_api/views/user_view_test.exs b/test/web/twitter_api/views/user_view_test.exs new file mode 100644 index 000000000..de2cd3d30 --- /dev/null +++ b/test/web/twitter_api/views/user_view_test.exs @@ -0,0 +1,82 @@ +defmodule Pleroma.Web.TwitterAPI.UserViewTest do + use Pleroma.DataCase + + alias Pleroma.User + alias Pleroma.Web.TwitterAPI.{UserView, Utils} + alias Pleroma.Builders.UserBuilder + + import Pleroma.Factory + + setup do + user = insert(:user, bio: "Here's some html") + [user: user] + end + + test "A user with an avatar object", %{user: user} do + image = "image" + user = %{ user | avatar: %{ "url" => [%{"href" => image}] }} + represented = UserView.render("show.json", %{user: user}) + assert represented["profile_image_url"] == image + end + + test "A user" do + note_activity = insert(:note_activity) + user = User.get_cached_by_ap_id(note_activity.data["actor"]) + follower = insert(:user) + second_follower = insert(:user) + + User.follow(follower, user) + User.follow(second_follower, user) + User.follow(user, follower) + + user = Repo.get!(User, user.id) + + image = "https://placehold.it/48x48" + + represented = %{ + "id" => user.id, + "name" => user.name, + "screen_name" => user.nickname, + "description" => HtmlSanitizeEx.strip_tags(user.bio), + "created_at" => user.inserted_at |> Utils.format_naive_asctime, + "favourites_count" => 0, + "statuses_count" => 1, + "friends_count" => 1, + "followers_count" => 2, + "profile_image_url" => image, + "profile_image_url_https" => image, + "profile_image_url_profile_size" => image, + "profile_image_url_original" => image, + "following" => false, + "rights" => %{}, + "statusnet_profile_url" => user.ap_id + } + + assert represented == UserView.render("show.json", %{user: user}) + end + + test "A user for a given other follower", %{user: user} do + {:ok, follower} = UserBuilder.insert(%{following: [User.ap_followers(user)]}) + image = "https://placehold.it/48x48" + represented = %{ + "id" => user.id, + "name" => user.name, + "screen_name" => user.nickname, + "description" => HtmlSanitizeEx.strip_tags(user.bio), + "created_at" => user.inserted_at |> Utils.format_naive_asctime, + "favourites_count" => 0, + "statuses_count" => 0, + "friends_count" => 0, + "followers_count" => 1, + "profile_image_url" => image, + "profile_image_url_https" => image, + "profile_image_url_profile_size" => image, + "profile_image_url_original" => image, + "following" => true, + "rights" => %{}, + "statusnet_profile_url" => user.ap_id + } + + assert represented == UserView.render("show.json", %{user: user, for: follower}) + end +end -- cgit v1.2.3