Merge branch 'refactor/remove-activity-representer' into 'develop'
Remove ActivityRepresenter See merge request pleroma/pleroma!980
This commit is contained in:
commit
3f44433ebd
@ -1,15 +0,0 @@
|
|||||||
# Pleroma: A lightweight social networking server
|
|
||||||
# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
|
|
||||||
# SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
|
|
||||||
# FIXME: Remove this module?
|
|
||||||
# THIS MODULE IS DEPRECATED! DON'T USE IT!
|
|
||||||
# USE THE Pleroma.Web.TwitterAPI.Views.ActivityView MODULE!
|
|
||||||
defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenter do
|
|
||||||
def to_map(activity, opts) do
|
|
||||||
Pleroma.Web.TwitterAPI.ActivityView.render(
|
|
||||||
"activity.json",
|
|
||||||
Map.put(opts, :activity, activity)
|
|
||||||
)
|
|
||||||
end
|
|
||||||
end
|
|
@ -1,170 +0,0 @@
|
|||||||
# Pleroma: A lightweight social networking server
|
|
||||||
# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
|
|
||||||
# SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
|
|
||||||
defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenterTest do
|
|
||||||
use Pleroma.DataCase
|
|
||||||
alias Pleroma.Activity
|
|
||||||
alias Pleroma.Object
|
|
||||||
alias Pleroma.User
|
|
||||||
alias Pleroma.Web.ActivityPub.ActivityPub
|
|
||||||
alias Pleroma.Web.TwitterAPI.Representers.ActivityRepresenter
|
|
||||||
alias Pleroma.Web.TwitterAPI.Representers.ObjectRepresenter
|
|
||||||
alias Pleroma.Web.TwitterAPI.UserView
|
|
||||||
import Pleroma.Factory
|
|
||||||
|
|
||||||
test "a like activity" do
|
|
||||||
user = insert(:user)
|
|
||||||
note_activity = insert(:note_activity)
|
|
||||||
object = Object.get_by_ap_id(note_activity.data["object"]["id"])
|
|
||||||
|
|
||||||
{:ok, like_activity, _object} = ActivityPub.like(user, object)
|
|
||||||
|
|
||||||
status =
|
|
||||||
ActivityRepresenter.to_map(like_activity, %{user: user, liked_activity: note_activity})
|
|
||||||
|
|
||||||
assert status["id"] == like_activity.id
|
|
||||||
assert status["in_reply_to_status_id"] == note_activity.id
|
|
||||||
|
|
||||||
note_activity = Activity.get_by_ap_id(note_activity.data["id"])
|
|
||||||
activity_actor = Repo.get_by(User, ap_id: note_activity.data["actor"])
|
|
||||||
liked_status = ActivityRepresenter.to_map(note_activity, %{user: activity_actor, for: user})
|
|
||||||
assert liked_status["favorited"] == true
|
|
||||||
assert status["activity_type"] == "like"
|
|
||||||
end
|
|
||||||
|
|
||||||
test "an activity" do
|
|
||||||
user = insert(:user)
|
|
||||||
# {:ok, mentioned_user } = UserBuilder.insert(%{nickname: "shp", ap_id: "shp"})
|
|
||||||
mentioned_user = insert(:user, %{nickname: "shp"})
|
|
||||||
|
|
||||||
# {:ok, follower} = UserBuilder.insert(%{following: [User.ap_followers(user)]})
|
|
||||||
follower = insert(:user, %{following: [User.ap_followers(user)]})
|
|
||||||
|
|
||||||
object = %Object{
|
|
||||||
data: %{
|
|
||||||
"type" => "Image",
|
|
||||||
"url" => [
|
|
||||||
%{
|
|
||||||
"type" => "Link",
|
|
||||||
"mediaType" => "image/jpg",
|
|
||||||
"href" => "http://example.org/image.jpg"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"uuid" => 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
content_html =
|
|
||||||
"<script>alert('YAY')</script>Some :2hu: content mentioning <a href='#{mentioned_user.ap_id}'>@shp</shp>"
|
|
||||||
|
|
||||||
content = HtmlSanitizeEx.strip_tags(content_html)
|
|
||||||
date = DateTime.from_naive!(~N[2016-05-24 13:26:08.003], "Etc/UTC") |> DateTime.to_iso8601()
|
|
||||||
|
|
||||||
{:ok, convo_object} = Object.context_mapping("2hu") |> Repo.insert()
|
|
||||||
|
|
||||||
to = [
|
|
||||||
User.ap_followers(user),
|
|
||||||
"https://www.w3.org/ns/activitystreams#Public",
|
|
||||||
mentioned_user.ap_id
|
|
||||||
]
|
|
||||||
|
|
||||||
activity = %Activity{
|
|
||||||
id: 1,
|
|
||||||
data: %{
|
|
||||||
"type" => "Create",
|
|
||||||
"id" => "id",
|
|
||||||
"to" => to,
|
|
||||||
"actor" => User.ap_id(user),
|
|
||||||
"object" => %{
|
|
||||||
"published" => date,
|
|
||||||
"type" => "Note",
|
|
||||||
"content" => content_html,
|
|
||||||
"summary" => "2hu :2hu:",
|
|
||||||
"inReplyToStatusId" => 213_123,
|
|
||||||
"attachment" => [
|
|
||||||
object
|
|
||||||
],
|
|
||||||
"external_url" => "some url",
|
|
||||||
"like_count" => 5,
|
|
||||||
"announcement_count" => 3,
|
|
||||||
"context" => "2hu",
|
|
||||||
"tag" => ["content", "mentioning", "nsfw"],
|
|
||||||
"emoji" => %{
|
|
||||||
"2hu" => "corndog.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"published" => date,
|
|
||||||
"context" => "2hu"
|
|
||||||
},
|
|
||||||
local: false,
|
|
||||||
recipients: to
|
|
||||||
}
|
|
||||||
|
|
||||||
corndog_emojo = ~s(<img height="32px" width="32px" alt="2hu" title="2hu" src="corndog.png" />)
|
|
||||||
|
|
||||||
expected_html =
|
|
||||||
~s(<p>2hu ) <>
|
|
||||||
corndog_emojo <>
|
|
||||||
~s(</p>alert\('YAY'\)Some ) <>
|
|
||||||
corndog_emojo <>
|
|
||||||
~s( content mentioning <a href=") <> mentioned_user.ap_id <> ~s(">@shp</a>)
|
|
||||||
|
|
||||||
expected_status = %{
|
|
||||||
"id" => activity.id,
|
|
||||||
"user" => UserView.render("show.json", %{user: user, for: follower}),
|
|
||||||
"is_local" => false,
|
|
||||||
"statusnet_html" => expected_html,
|
|
||||||
"text" => "2hu :2hu:" <> content,
|
|
||||||
"is_post_verb" => true,
|
|
||||||
"created_at" => "Tue May 24 13:26:08 +0000 2016",
|
|
||||||
"in_reply_to_status_id" => 213_123,
|
|
||||||
"in_reply_to_screen_name" => nil,
|
|
||||||
"in_reply_to_user_id" => nil,
|
|
||||||
"in_reply_to_profileurl" => nil,
|
|
||||||
"in_reply_to_ostatus_uri" => nil,
|
|
||||||
"statusnet_conversation_id" => convo_object.id,
|
|
||||||
"attachments" => [
|
|
||||||
ObjectRepresenter.to_map(object)
|
|
||||||
],
|
|
||||||
"attentions" => [
|
|
||||||
UserView.render("show.json", %{user: mentioned_user, for: follower})
|
|
||||||
],
|
|
||||||
"fave_num" => 5,
|
|
||||||
"repeat_num" => 3,
|
|
||||||
"favorited" => false,
|
|
||||||
"repeated" => false,
|
|
||||||
"pinned" => false,
|
|
||||||
"external_url" => "some url",
|
|
||||||
"tags" => ["nsfw", "content", "mentioning"],
|
|
||||||
"activity_type" => "post",
|
|
||||||
"possibly_sensitive" => true,
|
|
||||||
"uri" => activity.data["object"]["id"],
|
|
||||||
"visibility" => "direct",
|
|
||||||
"card" => nil,
|
|
||||||
"muted" => false,
|
|
||||||
"summary" => "2hu :2hu:",
|
|
||||||
"summary_html" =>
|
|
||||||
"2hu <img height=\"32px\" width=\"32px\" alt=\"2hu\" title=\"2hu\" src=\"corndog.png\" />"
|
|
||||||
}
|
|
||||||
|
|
||||||
assert ActivityRepresenter.to_map(activity, %{
|
|
||||||
user: user,
|
|
||||||
for: follower,
|
|
||||||
mentioned: [mentioned_user]
|
|
||||||
}) == expected_status
|
|
||||||
end
|
|
||||||
|
|
||||||
test "a delete activity" do
|
|
||||||
object = insert(:note)
|
|
||||||
user = User.get_by_ap_id(object.data["actor"])
|
|
||||||
|
|
||||||
{:ok, delete} = ActivityPub.delete(object)
|
|
||||||
|
|
||||||
map = ActivityRepresenter.to_map(delete, %{user: user})
|
|
||||||
|
|
||||||
assert map["is_post_verb"] == false
|
|
||||||
assert map["activity_type"] == "delete"
|
|
||||||
assert map["uri"] == object.data["id"]
|
|
||||||
end
|
|
||||||
end
|
|
@ -16,9 +16,9 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
|
|||||||
alias Pleroma.Web.ActivityPub.ActivityPub
|
alias Pleroma.Web.ActivityPub.ActivityPub
|
||||||
alias Pleroma.Web.CommonAPI
|
alias Pleroma.Web.CommonAPI
|
||||||
alias Pleroma.Web.OAuth.Token
|
alias Pleroma.Web.OAuth.Token
|
||||||
|
alias Pleroma.Web.TwitterAPI.ActivityView
|
||||||
alias Pleroma.Web.TwitterAPI.Controller
|
alias Pleroma.Web.TwitterAPI.Controller
|
||||||
alias Pleroma.Web.TwitterAPI.NotificationView
|
alias Pleroma.Web.TwitterAPI.NotificationView
|
||||||
alias Pleroma.Web.TwitterAPI.Representers.ActivityRepresenter
|
|
||||||
alias Pleroma.Web.TwitterAPI.TwitterAPI
|
alias Pleroma.Web.TwitterAPI.TwitterAPI
|
||||||
alias Pleroma.Web.TwitterAPI.UserView
|
alias Pleroma.Web.TwitterAPI.UserView
|
||||||
|
|
||||||
@ -116,7 +116,11 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
|
|||||||
|> post(request_path, %{status: "Nice meme.", visibility: "private"})
|
|> post(request_path, %{status: "Nice meme.", visibility: "private"})
|
||||||
|
|
||||||
assert json_response(conn, 200) ==
|
assert json_response(conn, 200) ==
|
||||||
ActivityRepresenter.to_map(Repo.one(Activity), %{user: user, for: user})
|
ActivityView.render("activity.json", %{
|
||||||
|
activity: Repo.one(Activity),
|
||||||
|
user: user,
|
||||||
|
for: user
|
||||||
|
})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -273,7 +277,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
|
|||||||
|
|
||||||
response = json_response(conn, 200)
|
response = json_response(conn, 200)
|
||||||
|
|
||||||
assert response == ActivityRepresenter.to_map(activity, %{user: actor})
|
assert response == ActivityView.render("activity.json", %{activity: activity, user: actor})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -372,7 +376,8 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
|
|||||||
|
|
||||||
assert response ==
|
assert response ==
|
||||||
Enum.map(returned_activities, fn activity ->
|
Enum.map(returned_activities, fn activity ->
|
||||||
ActivityRepresenter.to_map(activity, %{
|
ActivityView.render("activity.json", %{
|
||||||
|
activity: activity,
|
||||||
user: User.get_cached_by_ap_id(activity.data["actor"]),
|
user: User.get_cached_by_ap_id(activity.data["actor"]),
|
||||||
for: current_user
|
for: current_user
|
||||||
})
|
})
|
||||||
@ -469,10 +474,10 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
|
|||||||
assert length(response) == 1
|
assert length(response) == 1
|
||||||
|
|
||||||
assert Enum.at(response, 0) ==
|
assert Enum.at(response, 0) ==
|
||||||
ActivityRepresenter.to_map(activity, %{
|
ActivityView.render("activity.json", %{
|
||||||
user: current_user,
|
user: current_user,
|
||||||
for: current_user,
|
for: current_user,
|
||||||
mentioned: [current_user]
|
activity: activity
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -594,7 +599,9 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
|
|||||||
conn = get(conn, "/api/statuses/user_timeline.json", %{"user_id" => user.id})
|
conn = get(conn, "/api/statuses/user_timeline.json", %{"user_id" => user.id})
|
||||||
response = json_response(conn, 200)
|
response = json_response(conn, 200)
|
||||||
assert length(response) == 1
|
assert length(response) == 1
|
||||||
assert Enum.at(response, 0) == ActivityRepresenter.to_map(activity, %{user: user})
|
|
||||||
|
assert Enum.at(response, 0) ==
|
||||||
|
ActivityView.render("activity.json", %{user: user, activity: activity})
|
||||||
end
|
end
|
||||||
|
|
||||||
test "with screen_name", %{conn: conn} do
|
test "with screen_name", %{conn: conn} do
|
||||||
@ -604,7 +611,9 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
|
|||||||
conn = get(conn, "/api/statuses/user_timeline.json", %{"screen_name" => user.nickname})
|
conn = get(conn, "/api/statuses/user_timeline.json", %{"screen_name" => user.nickname})
|
||||||
response = json_response(conn, 200)
|
response = json_response(conn, 200)
|
||||||
assert length(response) == 1
|
assert length(response) == 1
|
||||||
assert Enum.at(response, 0) == ActivityRepresenter.to_map(activity, %{user: user})
|
|
||||||
|
assert Enum.at(response, 0) ==
|
||||||
|
ActivityView.render("activity.json", %{user: user, activity: activity})
|
||||||
end
|
end
|
||||||
|
|
||||||
test "with credentials", %{conn: conn, user: current_user} do
|
test "with credentials", %{conn: conn, user: current_user} do
|
||||||
@ -620,7 +629,11 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
|
|||||||
assert length(response) == 1
|
assert length(response) == 1
|
||||||
|
|
||||||
assert Enum.at(response, 0) ==
|
assert Enum.at(response, 0) ==
|
||||||
ActivityRepresenter.to_map(activity, %{user: current_user, for: current_user})
|
ActivityView.render("activity.json", %{
|
||||||
|
user: current_user,
|
||||||
|
for: current_user,
|
||||||
|
activity: activity
|
||||||
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
test "with credentials with user_id", %{conn: conn, user: current_user} do
|
test "with credentials with user_id", %{conn: conn, user: current_user} do
|
||||||
@ -635,7 +648,9 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
|
|||||||
response = json_response(conn, 200)
|
response = json_response(conn, 200)
|
||||||
|
|
||||||
assert length(response) == 1
|
assert length(response) == 1
|
||||||
assert Enum.at(response, 0) == ActivityRepresenter.to_map(activity, %{user: user})
|
|
||||||
|
assert Enum.at(response, 0) ==
|
||||||
|
ActivityView.render("activity.json", %{user: user, activity: activity})
|
||||||
end
|
end
|
||||||
|
|
||||||
test "with credentials screen_name", %{conn: conn, user: current_user} do
|
test "with credentials screen_name", %{conn: conn, user: current_user} do
|
||||||
@ -650,7 +665,9 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
|
|||||||
response = json_response(conn, 200)
|
response = json_response(conn, 200)
|
||||||
|
|
||||||
assert length(response) == 1
|
assert length(response) == 1
|
||||||
assert Enum.at(response, 0) == ActivityRepresenter.to_map(activity, %{user: user})
|
|
||||||
|
assert Enum.at(response, 0) ==
|
||||||
|
ActivityView.render("activity.json", %{user: user, activity: activity})
|
||||||
end
|
end
|
||||||
|
|
||||||
test "with credentials with user_id, excluding RTs", %{conn: conn, user: current_user} do
|
test "with credentials with user_id, excluding RTs", %{conn: conn, user: current_user} do
|
||||||
@ -669,7 +686,9 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
|
|||||||
response = json_response(conn, 200)
|
response = json_response(conn, 200)
|
||||||
|
|
||||||
assert length(response) == 1
|
assert length(response) == 1
|
||||||
assert Enum.at(response, 0) == ActivityRepresenter.to_map(activity, %{user: user})
|
|
||||||
|
assert Enum.at(response, 0) ==
|
||||||
|
ActivityView.render("activity.json", %{user: user, activity: activity})
|
||||||
|
|
||||||
conn =
|
conn =
|
||||||
conn
|
conn
|
||||||
@ -678,7 +697,9 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
|
|||||||
response = json_response(conn, 200)
|
response = json_response(conn, 200)
|
||||||
|
|
||||||
assert length(response) == 1
|
assert length(response) == 1
|
||||||
assert Enum.at(response, 0) == ActivityRepresenter.to_map(activity, %{user: user})
|
|
||||||
|
assert Enum.at(response, 0) ==
|
||||||
|
ActivityView.render("activity.json", %{user: user, activity: activity})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -937,7 +958,11 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
|
|||||||
activity_user = Repo.get_by(User, ap_id: note_activity.data["actor"])
|
activity_user = Repo.get_by(User, ap_id: note_activity.data["actor"])
|
||||||
|
|
||||||
assert json_response(response, 200) ==
|
assert json_response(response, 200) ==
|
||||||
ActivityRepresenter.to_map(activity, %{user: activity_user, for: current_user})
|
ActivityView.render("activity.json", %{
|
||||||
|
user: activity_user,
|
||||||
|
for: current_user,
|
||||||
|
activity: activity
|
||||||
|
})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -971,7 +996,11 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
|
|||||||
activity_user = Repo.get_by(User, ap_id: note_activity.data["actor"])
|
activity_user = Repo.get_by(User, ap_id: note_activity.data["actor"])
|
||||||
|
|
||||||
assert json_response(response, 200) ==
|
assert json_response(response, 200) ==
|
||||||
ActivityRepresenter.to_map(activity, %{user: activity_user, for: current_user})
|
ActivityView.render("activity.json", %{
|
||||||
|
user: activity_user,
|
||||||
|
for: current_user,
|
||||||
|
activity: activity
|
||||||
|
})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -1955,7 +1984,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
|
|||||||
user = refresh_record(user)
|
user = refresh_record(user)
|
||||||
|
|
||||||
assert json_response(response, 200) ==
|
assert json_response(response, 200) ==
|
||||||
ActivityRepresenter.to_map(activity, %{user: user, for: user})
|
ActivityView.render("activity.json", %{user: user, for: user, activity: activity})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -1985,7 +2014,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
|
|||||||
user = refresh_record(user)
|
user = refresh_record(user)
|
||||||
|
|
||||||
assert json_response(response, 200) ==
|
assert json_response(response, 200) ==
|
||||||
ActivityRepresenter.to_map(activity, %{user: user, for: user})
|
ActivityView.render("activity.json", %{user: user, for: user, activity: activity})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user