+ test "A user that follows you", %{user: user} do
+ follower = insert(:user)
+ {:ok, follower} = User.follow(follower, user)
+ {:ok, user} = User.update_follower_count(user)
+ image = "http://localhost:4001/images/avi.png"
+ banner = "http://localhost:4001/images/banner.png"
+
+ represented = %{
+ "id" => follower.id,
+ "name" => follower.name,
+ "screen_name" => follower.nickname,
+ "name_html" => follower.name,
+ "description" => HtmlSanitizeEx.strip_tags(follower.bio |> String.replace("<br>", "\n")),
+ "description_html" => HtmlSanitizeEx.basic_html(follower.bio),
+ "created_at" => follower.inserted_at |> Utils.format_naive_asctime(),
+ "favourites_count" => 0,
+ "statuses_count" => 0,
+ "friends_count" => 1,
+ "followers_count" => 0,
+ "profile_image_url" => image,
+ "profile_image_url_https" => image,
+ "profile_image_url_profile_size" => image,
+ "profile_image_url_original" => image,
+ "following" => false,
+ "follows_you" => true,
+ "statusnet_blocking" => false,
+ "rights" => %{
+ "delete_others_notice" => false,
+ "admin" => false
+ },
+ "statusnet_profile_url" => follower.ap_id,
+ "cover_photo" => banner,
+ "background_image" => nil,
+ "is_local" => true,
+ "locked" => false,
+ "default_scope" => "public",
+ "no_rich_text" => false,
+ "hide_follows" => false,
+ "hide_followers" => false,
+ "fields" => [],
+ "pleroma" => %{
+ "confirmation_pending" => false,
+ "tags" => []
+ }
+ }
+
+ assert represented == UserView.render("show.json", %{user: follower, for: user})
+ end
+
+ test "a user that is a moderator" do
+ user = insert(:user, %{info: %{is_moderator: true}})
+ represented = UserView.render("show.json", %{user: user, for: user})
+
+ assert represented["rights"]["delete_others_notice"]
+ assert represented["role"] == "moderator"
+ end
+
+ test "a user that is a admin" do
+ user = insert(:user, %{info: %{is_admin: true}})
+ represented = UserView.render("show.json", %{user: user, for: user})
+
+ assert represented["rights"]["admin"]
+ assert represented["role"] == "admin"
+ end
+
+ test "A moderator with hidden role for another user", %{user: user} do
+ admin = insert(:user, %{info: %{is_moderator: true, show_role: false}})
+ represented = UserView.render("show.json", %{user: admin, for: user})
+
+ assert represented["role"] == nil
+ end
+
+ test "An admin with hidden role for another user", %{user: user} do
+ admin = insert(:user, %{info: %{is_admin: true, show_role: false}})
+ represented = UserView.render("show.json", %{user: admin, for: user})
+
+ assert represented["role"] == nil
+ end
+
+ test "A regular user for the admin", %{user: user} do
+ admin = insert(:user, %{info: %{is_admin: true}})
+ represented = UserView.render("show.json", %{user: user, for: admin})
+
+ assert represented["pleroma"]["deactivated"] == false
+ end
+
+ test "A blocked user for the blocker" do