summaryrefslogtreecommitdiff
path: root/test/object
diff options
context:
space:
mode:
Diffstat (limited to 'test/object')
-rw-r--r--test/object/containment_test.exs10
-rw-r--r--test/object/fetcher_test.exs38
2 files changed, 42 insertions, 6 deletions
diff --git a/test/object/containment_test.exs b/test/object/containment_test.exs
index a7a046203..1beed6236 100644
--- a/test/object/containment_test.exs
+++ b/test/object/containment_test.exs
@@ -1,3 +1,7 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
defmodule Pleroma.Object.ContainmentTest do
use Pleroma.DataCase
@@ -5,6 +9,7 @@ defmodule Pleroma.Object.ContainmentTest do
alias Pleroma.User
import Pleroma.Factory
+ import ExUnit.CaptureLog
setup_all do
Tesla.Mock.mock_global(fn env -> apply(HttpRequestMock, :request, [env]) end)
@@ -57,7 +62,10 @@ defmodule Pleroma.Object.ContainmentTest do
follower_address: User.ap_followers(%User{nickname: "rye@niu.moe"})
})
- {:error, _} = User.get_or_fetch_by_ap_id("https://n1u.moe/users/rye")
+ assert capture_log(fn ->
+ {:error, _} = User.get_or_fetch_by_ap_id("https://n1u.moe/users/rye")
+ end) =~
+ "[error] Could not decode user at fetch https://n1u.moe/users/rye, {:error, :error}"
end
end
end
diff --git a/test/object/fetcher_test.exs b/test/object/fetcher_test.exs
index d604fd5f5..3b666e0d1 100644
--- a/test/object/fetcher_test.exs
+++ b/test/object/fetcher_test.exs
@@ -1,3 +1,7 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
defmodule Pleroma.Object.FetcherTest do
use Pleroma.DataCase
@@ -7,7 +11,17 @@ defmodule Pleroma.Object.FetcherTest do
import Tesla.Mock
setup do
- mock(fn env -> apply(HttpRequestMock, :request, [env]) end)
+ mock(fn
+ %{method: :get, url: "https://mastodon.example.org/users/userisgone"} ->
+ %Tesla.Env{status: 410}
+
+ %{method: :get, url: "https://mastodon.example.org/users/userisgone404"} ->
+ %Tesla.Env{status: 404}
+
+ env ->
+ apply(HttpRequestMock, :request, [env])
+ end)
+
:ok
end
@@ -81,10 +95,24 @@ defmodule Pleroma.Object.FetcherTest do
end
test "all objects with fake directions are rejected by the object fetcher" do
- {:error, _} =
- Fetcher.fetch_and_contain_remote_object_from_id(
- "https://info.pleroma.site/activity4.json"
- )
+ assert {:error, _} =
+ Fetcher.fetch_and_contain_remote_object_from_id(
+ "https://info.pleroma.site/activity4.json"
+ )
+ end
+
+ test "handle HTTP 410 Gone response" do
+ assert {:error, "Object has been deleted"} ==
+ Fetcher.fetch_and_contain_remote_object_from_id(
+ "https://mastodon.example.org/users/userisgone"
+ )
+ end
+
+ test "handle HTTP 404 response" do
+ assert {:error, "Object has been deleted"} ==
+ Fetcher.fetch_and_contain_remote_object_from_id(
+ "https://mastodon.example.org/users/userisgone404"
+ )
end
end