2019-04-02 00:31:01 +02:00
|
|
|
# Pleroma: A lightweight social networking server
|
2020-03-03 23:44:49 +01:00
|
|
|
# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
|
2019-04-02 00:31:01 +02:00
|
|
|
# SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
|
|
|
|
defmodule Pleroma.Web.MastodonAPI.ScheduledActivityViewTest do
|
|
|
|
use Pleroma.DataCase
|
|
|
|
alias Pleroma.ScheduledActivity
|
|
|
|
alias Pleroma.Web.ActivityPub.ActivityPub
|
|
|
|
alias Pleroma.Web.CommonAPI
|
|
|
|
alias Pleroma.Web.CommonAPI.Utils
|
|
|
|
alias Pleroma.Web.MastodonAPI.ScheduledActivityView
|
|
|
|
alias Pleroma.Web.MastodonAPI.StatusView
|
|
|
|
import Pleroma.Factory
|
|
|
|
|
|
|
|
test "A scheduled activity with a media attachment" do
|
|
|
|
user = insert(:user)
|
|
|
|
{:ok, activity} = CommonAPI.post(user, %{"status" => "hi"})
|
|
|
|
|
|
|
|
scheduled_at =
|
|
|
|
NaiveDateTime.utc_now()
|
|
|
|
|> NaiveDateTime.add(:timer.minutes(10), :millisecond)
|
|
|
|
|> NaiveDateTime.to_iso8601()
|
|
|
|
|
|
|
|
file = %Plug.Upload{
|
|
|
|
content_type: "image/jpg",
|
|
|
|
path: Path.absname("test/fixtures/image.jpg"),
|
|
|
|
filename: "an_image.jpg"
|
|
|
|
}
|
|
|
|
|
|
|
|
{:ok, upload} = ActivityPub.upload(file, actor: user.ap_id)
|
|
|
|
|
|
|
|
attrs = %{
|
|
|
|
params: %{
|
|
|
|
"media_ids" => [upload.id],
|
|
|
|
"status" => "hi",
|
|
|
|
"sensitive" => true,
|
|
|
|
"spoiler_text" => "spoiler",
|
|
|
|
"visibility" => "unlisted",
|
|
|
|
"in_reply_to_id" => to_string(activity.id)
|
|
|
|
},
|
|
|
|
scheduled_at: scheduled_at
|
|
|
|
}
|
|
|
|
|
|
|
|
{:ok, scheduled_activity} = ScheduledActivity.create(user, attrs)
|
|
|
|
result = ScheduledActivityView.render("show.json", %{scheduled_activity: scheduled_activity})
|
|
|
|
|
|
|
|
expected = %{
|
|
|
|
id: to_string(scheduled_activity.id),
|
|
|
|
media_attachments:
|
|
|
|
%{"media_ids" => [upload.id]}
|
|
|
|
|> Utils.attachments_from_ids()
|
|
|
|
|> Enum.map(&StatusView.render("attachment.json", %{attachment: &1})),
|
|
|
|
params: %{
|
|
|
|
in_reply_to_id: to_string(activity.id),
|
2019-04-03 17:55:04 +02:00
|
|
|
media_ids: [upload.id],
|
2019-04-02 00:31:01 +02:00
|
|
|
poll: nil,
|
|
|
|
scheduled_at: nil,
|
|
|
|
sensitive: true,
|
|
|
|
spoiler_text: "spoiler",
|
|
|
|
text: "hi",
|
|
|
|
visibility: "unlisted"
|
|
|
|
},
|
|
|
|
scheduled_at: Utils.to_masto_date(scheduled_activity.scheduled_at)
|
|
|
|
}
|
|
|
|
|
|
|
|
assert expected == result
|
|
|
|
end
|
|
|
|
end
|