542bb17258
Some software, like GoToSocial, expose replies as ActivityPub Collections, but do not expose any item array directly in the object, causing validation to fail via the ObjectID validator. Now, Pleroma will drop that field in this situation too.
49 lines
1.3 KiB
Elixir
49 lines
1.3 KiB
Elixir
# Pleroma: A lightweight social networking server
|
|
# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
|
|
# SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
defmodule Pleroma.Web.ActivityPub.ObjectValidators.ArticleNotePageValidatorTest do
|
|
use Pleroma.DataCase, async: true
|
|
|
|
alias Pleroma.Web.ActivityPub.ObjectValidators.ArticleNotePageValidator
|
|
alias Pleroma.Web.ActivityPub.Utils
|
|
|
|
import Pleroma.Factory
|
|
|
|
describe "Notes" do
|
|
setup do
|
|
user = insert(:user)
|
|
|
|
note = %{
|
|
"id" => Utils.generate_activity_id(),
|
|
"type" => "Note",
|
|
"actor" => user.ap_id,
|
|
"to" => [user.follower_address],
|
|
"cc" => [],
|
|
"content" => "Hellow this is content.",
|
|
"context" => "xxx",
|
|
"summary" => "a post"
|
|
}
|
|
|
|
%{user: user, note: note}
|
|
end
|
|
|
|
test "a basic note validates", %{note: note} do
|
|
%{valid?: true} = ArticleNotePageValidator.cast_and_validate(note)
|
|
end
|
|
end
|
|
|
|
test "a Note without replies/first/items validates" do
|
|
insert(:user, ap_id: "https://mastodon.social/users/emelie")
|
|
|
|
note =
|
|
"test/fixtures/tesla_mock/status.emelie.json"
|
|
|> File.read!()
|
|
|> Jason.decode!()
|
|
|> pop_in(["replies", "first", "items"])
|
|
|> elem(1)
|
|
|
|
%{valid?: true} = ArticleNotePageValidator.cast_and_validate(note)
|
|
end
|
|
end
|