test "A user with an avatar object", %{user: user} do
image = "image"
- user = %{ user | avatar: %{ "url" => [%{"href" => image}] }}
+ user = %{user | avatar: %{"url" => [%{"href" => image}]}}
represented = UserView.render("show.json", %{user: user})
assert represented["profile_image_url"] == image
end
User.follow(follower, user)
User.follow(second_follower, user)
User.follow(user, follower)
+ {:ok, user} = User.update_follower_count(user)
+ Cachex.put(:user_cache, "user_info:#{user.id}", User.user_info(Repo.get!(User, user.id)))
- user = Repo.get!(User, user.id)
-
- image = "https://placehold.it/48x48"
+ image = "http://localhost:4001/images/avi.png"
+ banner = "http://localhost:4001/images/banner.png"
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,
+ "created_at" => user.inserted_at |> Utils.format_naive_asctime(),
"favourites_count" => 0,
"statuses_count" => 1,
"friends_count" => 1,
"profile_image_url_profile_size" => image,
"profile_image_url_original" => image,
"following" => false,
- "rights" => %{},
+ "follows_you" => false,
+ "statusnet_blocking" => false,
+ "rights" => %{
+ "delete_others_notice" => false
+ },
"statusnet_profile_url" => user.ap_id,
- "cover_photo" => nil,
- "background_image" => nil
+ "cover_photo" => banner,
+ "background_image" => nil,
+ "is_local" => true
}
assert represented == UserView.render("show.json", %{user: user})
test "A user for a given other follower", %{user: user} do
{:ok, follower} = UserBuilder.insert(%{following: [User.ap_followers(user)]})
{:ok, user} = User.update_follower_count(user)
- image = "https://placehold.it/48x48"
+ image = "http://localhost:4001/images/avi.png"
+ banner = "http://localhost:4001/images/banner.png"
+
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,
+ "created_at" => user.inserted_at |> Utils.format_naive_asctime(),
"favourites_count" => 0,
"statuses_count" => 0,
"friends_count" => 0,
"profile_image_url_profile_size" => image,
"profile_image_url_original" => image,
"following" => true,
- "rights" => %{},
+ "follows_you" => false,
+ "statusnet_blocking" => false,
+ "rights" => %{
+ "delete_others_notice" => false
+ },
"statusnet_profile_url" => user.ap_id,
- "cover_photo" => nil,
- "background_image" => nil
+ "cover_photo" => banner,
+ "background_image" => nil,
+ "is_local" => true
}
assert represented == UserView.render("show.json", %{user: user, for: follower})
end
+
+ 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,
+ "description" => HtmlSanitizeEx.strip_tags(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
+ },
+ "statusnet_profile_url" => follower.ap_id,
+ "cover_photo" => banner,
+ "background_image" => nil,
+ "is_local" => true
+ }
+
+ 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"]
+ end
+
+ test "A blocked user for the blocker" do
+ user = insert(:user)
+ blocker = insert(:user)
+ User.block(blocker, user)
+ image = "http://localhost:4001/images/avi.png"
+ banner = "http://localhost:4001/images/banner.png"
+
+ 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" => 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" => false,
+ "statusnet_blocking" => true,
+ "rights" => %{
+ "delete_others_notice" => false
+ },
+ "statusnet_profile_url" => user.ap_id,
+ "cover_photo" => banner,
+ "background_image" => nil,
+ "is_local" => true
+ }
+
+ blocker = Repo.get(User, blocker.id)
+ assert represented == UserView.render("show.json", %{user: user, for: blocker})
+ end
end