summaryrefslogtreecommitdiff
path: root/test/support
diff options
context:
space:
mode:
Diffstat (limited to 'test/support')
-rw-r--r--test/support/builders/user_builder.ex3
-rw-r--r--test/support/conn_case.ex1
-rw-r--r--test/support/data_case.ex1
-rw-r--r--test/support/factory.ex47
-rw-r--r--test/support/http_request_mock.ex91
5 files changed, 131 insertions, 12 deletions
diff --git a/test/support/builders/user_builder.ex b/test/support/builders/user_builder.ex
index 7a1ca79b5..611a5be18 100644
--- a/test/support/builders/user_builder.ex
+++ b/test/support/builders/user_builder.ex
@@ -1,5 +1,6 @@
defmodule Pleroma.Builders.UserBuilder do
- alias Pleroma.{User, Repo}
+ alias Pleroma.User
+ alias Pleroma.Repo
def build(data \\ %{}) do
user = %User{
diff --git a/test/support/conn_case.ex b/test/support/conn_case.ex
index c201d9a9b..ec5892ff5 100644
--- a/test/support/conn_case.ex
+++ b/test/support/conn_case.ex
@@ -33,6 +33,7 @@ defmodule Pleroma.Web.ConnCase do
setup tags do
Cachex.clear(:user_cache)
+ Cachex.clear(:object_cache)
:ok = Ecto.Adapters.SQL.Sandbox.checkout(Pleroma.Repo)
unless tags[:async] do
diff --git a/test/support/data_case.ex b/test/support/data_case.ex
index 56d5896ad..df260bd3f 100644
--- a/test/support/data_case.ex
+++ b/test/support/data_case.ex
@@ -32,6 +32,7 @@ defmodule Pleroma.DataCase do
setup tags do
Cachex.clear(:user_cache)
+ Cachex.clear(:object_cache)
:ok = Ecto.Adapters.SQL.Sandbox.checkout(Pleroma.Repo)
unless tags[:async] do
diff --git a/test/support/factory.ex b/test/support/factory.ex
index e5c0c5bcc..0c21093ce 100644
--- a/test/support/factory.ex
+++ b/test/support/factory.ex
@@ -57,6 +57,24 @@ defmodule Pleroma.Factory do
%Pleroma.Object{data: Map.merge(data, %{"to" => [user2.ap_id]})}
end
+ def article_factory do
+ note_factory()
+ |> Map.put("type", "Article")
+ end
+
+ def tombstone_factory do
+ data = %{
+ "type" => "Tombstone",
+ "id" => Pleroma.Web.ActivityPub.Utils.generate_object_id(),
+ "formerType" => "Note",
+ "deleted" => DateTime.utc_now() |> DateTime.to_iso8601()
+ }
+
+ %Pleroma.Object{
+ data: data
+ }
+ end
+
def direct_note_activity_factory do
dm = insert(:direct_note)
@@ -97,6 +115,26 @@ defmodule Pleroma.Factory do
}
end
+ def article_activity_factory do
+ article = insert(:article)
+
+ data = %{
+ "id" => Pleroma.Web.ActivityPub.Utils.generate_activity_id(),
+ "type" => "Create",
+ "actor" => article.data["actor"],
+ "to" => article.data["to"],
+ "object" => article.data,
+ "published" => DateTime.utc_now() |> DateTime.to_iso8601(),
+ "context" => article.data["context"]
+ }
+
+ %Pleroma.Activity{
+ data: data,
+ actor: data["actor"],
+ recipients: data["to"]
+ }
+ end
+
def announce_activity_factory do
note_activity = insert(:note_activity)
user = insert(:user)
@@ -155,7 +193,7 @@ defmodule Pleroma.Factory do
def websub_subscription_factory do
%Pleroma.Web.Websub.WebsubServerSubscription{
topic: "http://example.org",
- callback: "http://example/org/callback",
+ callback: "http://example.org/callback",
secret: "here's a secret",
valid_until: NaiveDateTime.add(NaiveDateTime.utc_now(), 100),
state: "requested"
@@ -182,4 +220,11 @@ defmodule Pleroma.Factory do
client_secret: "aaa;/&bbb"
}
end
+
+ def instance_factory do
+ %Pleroma.Instances.Instance{
+ host: "domain.com",
+ unreachable_since: nil
+ }
+ end
end
diff --git a/test/support/http_request_mock.ex b/test/support/http_request_mock.ex
index e4279e14d..78e8efc9d 100644
--- a/test/support/http_request_mock.ex
+++ b/test/support/http_request_mock.ex
@@ -143,7 +143,10 @@ defmodule HttpRequestMock do
}}
end
- def get("https://squeet.me/xrd/?uri=lain@squeet.me", _, _,
+ def get(
+ "https://squeet.me/xrd/?uri=lain@squeet.me",
+ _,
+ _,
Accept: "application/xrd+xml,application/jrd+json"
) do
{:ok,
@@ -153,7 +156,10 @@ defmodule HttpRequestMock do
}}
end
- def get("https://mst3k.interlinked.me/users/luciferMysticus", _, _,
+ def get(
+ "https://mst3k.interlinked.me/users/luciferMysticus",
+ _,
+ _,
Accept: "application/activity+json"
) do
{:ok,
@@ -171,7 +177,10 @@ defmodule HttpRequestMock do
}}
end
- def get("https://hubzilla.example.org/channel/kaniini", _, _,
+ def get(
+ "https://hubzilla.example.org/channel/kaniini",
+ _,
+ _,
Accept: "application/activity+json"
) do
{:ok,
@@ -248,7 +257,10 @@ defmodule HttpRequestMock do
}}
end
- def get("http://mastodon.example.org/@admin/99541947525187367", _, _,
+ def get(
+ "http://mastodon.example.org/@admin/99541947525187367",
+ _,
+ _,
Accept: "application/activity+json"
) do
{:ok,
@@ -274,7 +286,10 @@ defmodule HttpRequestMock do
}}
end
- def get("https://mstdn.io/users/mayuutann/statuses/99568293732299394", _, _,
+ def get(
+ "https://mstdn.io/users/mayuutann/statuses/99568293732299394",
+ _,
+ _,
Accept: "application/activity+json"
) do
{:ok,
@@ -429,7 +444,10 @@ defmodule HttpRequestMock do
}}
end
- def get("https://social.sakamoto.gq/objects/0ccc1a2c-66b0-4305-b23a-7f7f2b040056", _, _,
+ def get(
+ "https://social.sakamoto.gq/objects/0ccc1a2c-66b0-4305-b23a-7f7f2b040056",
+ _,
+ _,
Accept: "application/atom+xml"
) do
{:ok, %Tesla.Env{status: 200, body: File.read!("test/fixtures/httpoison_mock/sakamoto.atom")}}
@@ -510,7 +528,10 @@ defmodule HttpRequestMock do
%Tesla.Env{status: 200, body: File.read!("test/fixtures/httpoison_mock/squeet.me_host_meta")}}
end
- def get("https://squeet.me/xrd?uri=lain@squeet.me", _, _,
+ def get(
+ "https://squeet.me/xrd?uri=lain@squeet.me",
+ _,
+ _,
Accept: "application/xrd+xml,application/jrd+json"
) do
{:ok,
@@ -541,7 +562,10 @@ defmodule HttpRequestMock do
}}
end
- def get("http://framatube.org/main/xrd?uri=framasoft@framatube.org", _, _,
+ def get(
+ "http://framatube.org/main/xrd?uri=framasoft@framatube.org",
+ _,
+ _,
Accept: "application/xrd+xml,application/jrd+json"
) do
{:ok,
@@ -560,7 +584,10 @@ defmodule HttpRequestMock do
}}
end
- def get("http://gnusocial.de/main/xrd?uri=winterdienst@gnusocial.de", _, _,
+ def get(
+ "http://gnusocial.de/main/xrd?uri=winterdienst@gnusocial.de",
+ _,
+ _,
Accept: "application/xrd+xml,application/jrd+json"
) do
{:ok,
@@ -594,7 +621,10 @@ defmodule HttpRequestMock do
}}
end
- def get("https://gerzilla.de/xrd/?uri=kaniini@gerzilla.de", _, _,
+ def get(
+ "https://gerzilla.de/xrd/?uri=kaniini@gerzilla.de",
+ _,
+ _,
Accept: "application/xrd+xml,application/jrd+json"
) do
{:ok,
@@ -653,6 +683,27 @@ defmodule HttpRequestMock do
{:ok, Tesla.Mock.json(%{"id" => "https://social.heldscal.la/user/23211"}, status: 200)}
end
+ def get("http://example.com/ogp", _, _, _) do
+ {:ok, %Tesla.Env{status: 200, body: File.read!("test/fixtures/rich_media/ogp.html")}}
+ end
+
+ def get("http://example.com/malformed", _, _, _) do
+ {:ok,
+ %Tesla.Env{status: 200, body: File.read!("test/fixtures/rich_media/malformed-data.html")}}
+ end
+
+ def get("http://example.com/empty", _, _, _) do
+ {:ok, %Tesla.Env{status: 200, body: "hello"}}
+ end
+
+ def get("http://404.site" <> _, _, _, _) do
+ {:ok,
+ %Tesla.Env{
+ status: 404,
+ body: ""
+ }}
+ end
+
def get(url, query, body, headers) do
{:error,
"Not implemented the mock response for get #{inspect(url)}, #{query}, #{inspect(body)}, #{
@@ -673,6 +724,26 @@ defmodule HttpRequestMock do
}}
end
+ def post("http://200.site" <> _, _, _, _) do
+ {:ok,
+ %Tesla.Env{
+ status: 200,
+ body: ""
+ }}
+ end
+
+ def post("http://connrefused.site" <> _, _, _, _) do
+ {:error, :connrefused}
+ end
+
+ def post("http://404.site" <> _, _, _, _) do
+ {:ok,
+ %Tesla.Env{
+ status: 404,
+ body: ""
+ }}
+ end
+
def post(url, _query, _body, _headers) do
{:error, "Not implemented the mock response for post #{inspect(url)}"}
end