tests: fix a lot of the remaining test failures
This commit is contained in:
parent
4ca4c83871
commit
f7e15d3257
|
@ -36,8 +36,7 @@ test "it filters out obviously bad tags when accepting a post as HTML" do
|
||||||
"content_type" => "text/html"
|
"content_type" => "text/html"
|
||||||
})
|
})
|
||||||
|
|
||||||
object =
|
object = Object.normalize(activity.data["object"])
|
||||||
Object.normalize(activity.data["object"])
|
|
||||||
|
|
||||||
assert object.data["content"] == "<p><b>2hu</b></p>alert('xss')"
|
assert object.data["content"] == "<p><b>2hu</b></p>alert('xss')"
|
||||||
end
|
end
|
||||||
|
@ -53,8 +52,7 @@ test "it filters out obviously bad tags when accepting a post as Markdown" do
|
||||||
"content_type" => "text/markdown"
|
"content_type" => "text/markdown"
|
||||||
})
|
})
|
||||||
|
|
||||||
object =
|
object = Object.normalize(activity.data["object"])
|
||||||
Object.normalize(activity.data["object"])
|
|
||||||
|
|
||||||
assert object.data["content"] == "<p><b>2hu</b></p>alert('xss')"
|
assert object.data["content"] == "<p><b>2hu</b></p>alert('xss')"
|
||||||
end
|
end
|
||||||
|
|
|
@ -2,7 +2,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do
|
||||||
use Pleroma.Web.ConnCase
|
use Pleroma.Web.ConnCase
|
||||||
|
|
||||||
alias Pleroma.Web.TwitterAPI.TwitterAPI
|
alias Pleroma.Web.TwitterAPI.TwitterAPI
|
||||||
alias Pleroma.{Repo, User, Activity, Notification}
|
alias Pleroma.{Repo, User, Activity, Notification, Object}
|
||||||
alias Pleroma.Web.{OStatus, CommonAPI}
|
alias Pleroma.Web.{OStatus, CommonAPI}
|
||||||
alias Pleroma.Web.ActivityPub.ActivityPub
|
alias Pleroma.Web.ActivityPub.ActivityPub
|
||||||
|
|
||||||
|
@ -219,9 +219,10 @@ test "replying to a status", %{conn: conn} do
|
||||||
assert %{"content" => "xD", "id" => id} = json_response(conn, 200)
|
assert %{"content" => "xD", "id" => id} = json_response(conn, 200)
|
||||||
|
|
||||||
activity = Repo.get(Activity, id)
|
activity = Repo.get(Activity, id)
|
||||||
|
object = Object.normalize(activity.data["object"])
|
||||||
|
|
||||||
assert activity.data["context"] == replied_to.data["context"]
|
assert activity.data["context"] == replied_to.data["context"]
|
||||||
assert activity.data["object"]["inReplyToStatusId"] == replied_to.id
|
assert object.data["inReplyToStatusId"] == replied_to.id
|
||||||
end
|
end
|
||||||
|
|
||||||
test "posting a status with an invalid in_reply_to_id", %{conn: conn} do
|
test "posting a status with an invalid in_reply_to_id", %{conn: conn} do
|
||||||
|
|
|
@ -22,8 +22,7 @@ test "handle incoming note - GS, Salmon" do
|
||||||
assert activity.data["type"] == "Create"
|
assert activity.data["type"] == "Create"
|
||||||
assert object.data["type"] == "Note"
|
assert object.data["type"] == "Note"
|
||||||
|
|
||||||
assert object.data["id"] ==
|
assert object.data["id"] == "tag:gs.example.org:4040,2017-04-23:noticeId=29:objectType=note"
|
||||||
"tag:gs.example.org:4040,2017-04-23:noticeId=29:objectType=note"
|
|
||||||
|
|
||||||
assert activity.data["published"] == "2017-04-23T14:51:03+00:00"
|
assert activity.data["published"] == "2017-04-23T14:51:03+00:00"
|
||||||
assert object.data["published"] == "2017-04-23T14:51:03+00:00"
|
assert object.data["published"] == "2017-04-23T14:51:03+00:00"
|
||||||
|
@ -268,8 +267,7 @@ test "handle incoming replies" do
|
||||||
|
|
||||||
assert "http://pleroma.example.org:4000/users/lain5" in activity.data["to"]
|
assert "http://pleroma.example.org:4000/users/lain5" in activity.data["to"]
|
||||||
|
|
||||||
assert object.data["id"] ==
|
assert object.data["id"] == "tag:gs.example.org:4040,2017-04-25:noticeId=55:objectType=note"
|
||||||
"tag:gs.example.org:4040,2017-04-25:noticeId=55:objectType=note"
|
|
||||||
|
|
||||||
assert "https://www.w3.org/ns/activitystreams#Public" in activity.data["to"]
|
assert "https://www.w3.org/ns/activitystreams#Public" in activity.data["to"]
|
||||||
end
|
end
|
||||||
|
|
|
@ -33,13 +33,14 @@ test "create a status" do
|
||||||
}
|
}
|
||||||
|
|
||||||
{:ok, activity = %Activity{}} = TwitterAPI.create_status(user, input)
|
{:ok, activity = %Activity{}} = TwitterAPI.create_status(user, input)
|
||||||
|
object = Object.normalize(activity.data["object"])
|
||||||
|
|
||||||
expected_text =
|
expected_text =
|
||||||
"Hello again, <span><a class='mention' href='shp'>@<span>shp</span></a></span>.<script></script><br>This is on another :moominmamma: line. <a href='http://localhost:4001/tag/2hu' rel='tag'>#2hu</a> <a href='http://localhost:4001/tag/epic' rel='tag'>#epic</a> <a href='http://localhost:4001/tag/phantasmagoric' rel='tag'>#phantasmagoric</a><br><a href=\"http://example.org/image.jpg\" class='attachment'>image.jpg</a>"
|
"Hello again, <span><a class='mention' href='shp'>@<span>shp</span></a></span>.<script></script><br>This is on another :moominmamma: line. <a href='http://localhost:4001/tag/2hu' rel='tag'>#2hu</a> <a href='http://localhost:4001/tag/epic' rel='tag'>#epic</a> <a href='http://localhost:4001/tag/phantasmagoric' rel='tag'>#phantasmagoric</a><br><a href=\"http://example.org/image.jpg\" class='attachment'>image.jpg</a>"
|
||||||
|
|
||||||
assert get_in(activity.data, ["object", "content"]) == expected_text
|
assert get_in(object.data, ["content"]) == expected_text
|
||||||
assert get_in(activity.data, ["object", "type"]) == "Note"
|
assert get_in(object.data, ["type"]) == "Note"
|
||||||
assert get_in(activity.data, ["object", "actor"]) == user.ap_id
|
assert get_in(object.data, ["actor"]) == user.ap_id
|
||||||
assert get_in(activity.data, ["actor"]) == user.ap_id
|
assert get_in(activity.data, ["actor"]) == user.ap_id
|
||||||
assert Enum.member?(get_in(activity.data, ["cc"]), User.ap_followers(user))
|
assert Enum.member?(get_in(activity.data, ["cc"]), User.ap_followers(user))
|
||||||
|
|
||||||
|
@ -52,18 +53,18 @@ test "create a status" do
|
||||||
assert activity.local == true
|
assert activity.local == true
|
||||||
|
|
||||||
assert %{"moominmamma" => "http://localhost:4001/finmoji/128px/moominmamma-128.png"} =
|
assert %{"moominmamma" => "http://localhost:4001/finmoji/128px/moominmamma-128.png"} =
|
||||||
activity.data["object"]["emoji"]
|
object.data["emoji"]
|
||||||
|
|
||||||
# hashtags
|
# hashtags
|
||||||
assert activity.data["object"]["tag"] == ["2hu", "epic", "phantasmagoric"]
|
assert object.data["tag"] == ["2hu", "epic", "phantasmagoric"]
|
||||||
|
|
||||||
# Add a context
|
# Add a context
|
||||||
assert is_binary(get_in(activity.data, ["context"]))
|
assert is_binary(get_in(activity.data, ["context"]))
|
||||||
assert is_binary(get_in(activity.data, ["object", "context"]))
|
assert is_binary(get_in(object.data, ["context"]))
|
||||||
|
|
||||||
assert is_list(activity.data["object"]["attachment"])
|
assert is_list(object.data["attachment"])
|
||||||
|
|
||||||
assert activity.data["object"] == Object.get_by_ap_id(activity.data["object"]["id"]).data
|
assert activity.data["object"] == object.data["id"]
|
||||||
|
|
||||||
user = User.get_by_ap_id(user.ap_id)
|
user = User.get_by_ap_id(user.ap_id)
|
||||||
|
|
||||||
|
@ -78,6 +79,7 @@ test "create a status that is a reply" do
|
||||||
}
|
}
|
||||||
|
|
||||||
{:ok, activity = %Activity{}} = TwitterAPI.create_status(user, input)
|
{:ok, activity = %Activity{}} = TwitterAPI.create_status(user, input)
|
||||||
|
object = Object.normalize(activity.data["object"])
|
||||||
|
|
||||||
input = %{
|
input = %{
|
||||||
"status" => "Here's your (you).",
|
"status" => "Here's your (you).",
|
||||||
|
@ -85,14 +87,14 @@ test "create a status that is a reply" do
|
||||||
}
|
}
|
||||||
|
|
||||||
{:ok, reply = %Activity{}} = TwitterAPI.create_status(user, input)
|
{:ok, reply = %Activity{}} = TwitterAPI.create_status(user, input)
|
||||||
|
reply_object = Object.normalize(reply.data["object"])
|
||||||
|
|
||||||
assert get_in(reply.data, ["context"]) == get_in(activity.data, ["context"])
|
assert get_in(reply.data, ["context"]) == get_in(activity.data, ["context"])
|
||||||
|
|
||||||
assert get_in(reply.data, ["object", "context"]) ==
|
assert get_in(reply_object.data, ["context"]) == get_in(object.data, ["context"])
|
||||||
get_in(activity.data, ["object", "context"])
|
|
||||||
|
|
||||||
assert get_in(reply.data, ["object", "inReplyTo"]) == get_in(activity.data, ["object", "id"])
|
assert get_in(reply_object.data, ["inReplyTo"]) == get_in(activity.data, ["object"])
|
||||||
assert get_in(reply.data, ["object", "inReplyToStatusId"]) == activity.id
|
assert get_in(reply_object.data, ["inReplyToStatusId"]) == activity.id
|
||||||
end
|
end
|
||||||
|
|
||||||
test "Follow another user using user_id" do
|
test "Follow another user using user_id" do
|
||||||
|
|
|
@ -7,7 +7,7 @@ defmodule Pleroma.Web.TwitterAPI.ActivityViewTest do
|
||||||
alias Pleroma.Web.TwitterAPI.UserView
|
alias Pleroma.Web.TwitterAPI.UserView
|
||||||
alias Pleroma.Web.TwitterAPI.TwitterAPI
|
alias Pleroma.Web.TwitterAPI.TwitterAPI
|
||||||
alias Pleroma.Repo
|
alias Pleroma.Repo
|
||||||
alias Pleroma.Activity
|
alias Pleroma.{Activity, Object}
|
||||||
alias Pleroma.User
|
alias Pleroma.User
|
||||||
alias Pleroma.Web.ActivityPub.ActivityPub
|
alias Pleroma.Web.ActivityPub.ActivityPub
|
||||||
|
|
||||||
|
@ -19,10 +19,11 @@ test "a create activity with a note" do
|
||||||
other_user = insert(:user, %{nickname: "shp"})
|
other_user = insert(:user, %{nickname: "shp"})
|
||||||
|
|
||||||
{:ok, activity} = CommonAPI.post(user, %{"status" => "Hey @shp!", "visibility" => "direct"})
|
{:ok, activity} = CommonAPI.post(user, %{"status" => "Hey @shp!", "visibility" => "direct"})
|
||||||
|
object = Object.normalize(activity.data["object"])
|
||||||
|
|
||||||
result = ActivityView.render("activity.json", activity: activity)
|
result = ActivityView.render("activity.json", activity: activity)
|
||||||
|
|
||||||
convo_id = TwitterAPI.context_to_conversation_id(activity.data["object"]["context"])
|
convo_id = TwitterAPI.context_to_conversation_id(object.data["context"])
|
||||||
|
|
||||||
expected = %{
|
expected = %{
|
||||||
"activity_type" => "post",
|
"activity_type" => "post",
|
||||||
|
@ -30,8 +31,8 @@ test "a create activity with a note" do
|
||||||
"attentions" => [
|
"attentions" => [
|
||||||
UserView.render("show.json", %{user: other_user})
|
UserView.render("show.json", %{user: other_user})
|
||||||
],
|
],
|
||||||
"created_at" => activity.data["object"]["published"] |> Utils.date_to_asctime(),
|
"created_at" => object.data["published"] |> Utils.date_to_asctime(),
|
||||||
"external_url" => activity.data["object"]["id"],
|
"external_url" => object.data["id"],
|
||||||
"fave_num" => 0,
|
"fave_num" => 0,
|
||||||
"favorited" => false,
|
"favorited" => false,
|
||||||
"id" => activity.id,
|
"id" => activity.id,
|
||||||
|
@ -50,7 +51,7 @@ test "a create activity with a note" do
|
||||||
"Hey <span><a href=\"#{other_user.ap_id}\">@<span>shp</span></a></span>!",
|
"Hey <span><a href=\"#{other_user.ap_id}\">@<span>shp</span></a></span>!",
|
||||||
"tags" => [],
|
"tags" => [],
|
||||||
"text" => "Hey @shp!",
|
"text" => "Hey @shp!",
|
||||||
"uri" => activity.data["object"]["id"],
|
"uri" => object.data["id"],
|
||||||
"user" => UserView.render("show.json", %{user: user}),
|
"user" => UserView.render("show.json", %{user: user}),
|
||||||
"visibility" => "direct",
|
"visibility" => "direct",
|
||||||
"summary" => nil
|
"summary" => nil
|
||||||
|
@ -63,8 +64,9 @@ test "a list of activities" do
|
||||||
user = insert(:user)
|
user = insert(:user)
|
||||||
other_user = insert(:user, %{nickname: "shp"})
|
other_user = insert(:user, %{nickname: "shp"})
|
||||||
{:ok, activity} = CommonAPI.post(user, %{"status" => "Hey @shp!"})
|
{:ok, activity} = CommonAPI.post(user, %{"status" => "Hey @shp!"})
|
||||||
|
object = Object.normalize(activity.data["object"])
|
||||||
|
|
||||||
convo_id = TwitterAPI.context_to_conversation_id(activity.data["object"]["context"])
|
convo_id = TwitterAPI.context_to_conversation_id(object.data["context"])
|
||||||
|
|
||||||
mocks = [
|
mocks = [
|
||||||
{
|
{
|
||||||
|
@ -162,9 +164,9 @@ test "an announce activity" do
|
||||||
other_user = insert(:user, %{nickname: "shp"})
|
other_user = insert(:user, %{nickname: "shp"})
|
||||||
|
|
||||||
{:ok, activity} = CommonAPI.post(user, %{"status" => "Hey @shp!"})
|
{:ok, activity} = CommonAPI.post(user, %{"status" => "Hey @shp!"})
|
||||||
{:ok, announce, _object} = CommonAPI.repeat(activity.id, other_user)
|
{:ok, announce, object} = CommonAPI.repeat(activity.id, other_user)
|
||||||
|
|
||||||
convo_id = TwitterAPI.context_to_conversation_id(activity.data["object"]["context"])
|
convo_id = TwitterAPI.context_to_conversation_id(object.data["context"])
|
||||||
|
|
||||||
activity = Repo.get(Activity, activity.id)
|
activity = Repo.get(Activity, activity.id)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue