diff options
Diffstat (limited to 'test/support')
| -rw-r--r-- | test/support/builders/user_builder.ex | 3 | ||||
| -rw-r--r-- | test/support/conn_case.ex | 1 | ||||
| -rw-r--r-- | test/support/data_case.ex | 1 | ||||
| -rw-r--r-- | test/support/factory.ex | 47 | ||||
| -rw-r--r-- | test/support/http_request_mock.ex | 91 | 
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 | 
