From a9e4a975866c33553c477667c431187590329447 Mon Sep 17 00:00:00 2001 From: Maksim Pechnikov Date: Tue, 4 Dec 2018 14:01:39 +0300 Subject: [PATCH] update test --- lib/pleroma/http/http.ex | 1 + test/formatter_test.exs | 4 ++ test/support/http_request_mock.ex | 67 +++++++++++++++++++ test/user_test.exs | 5 ++ test/web/activity_pub/transmogrifier_test.exs | 7 +- test/web/ostatus/ostatus_controller_test.exs | 5 +- test/web/ostatus/ostatus_test.exs | 5 +- 7 files changed, 83 insertions(+), 11 deletions(-) diff --git a/lib/pleroma/http/http.ex b/lib/pleroma/http/http.ex index 93ac9d62b..59afacf4c 100644 --- a/lib/pleroma/http/http.ex +++ b/lib/pleroma/http/http.ex @@ -18,6 +18,7 @@ def request(method, url, body \\ "", headers \\ [], options \\ []) do |> (&Tesla.request(Connection.new(), &1)).() end + defp process_sni_options(options, nil), do: options defp process_sni_options(options, url) do uri = URI.parse(url) host = uri.host |> to_charlist() diff --git a/test/formatter_test.exs b/test/formatter_test.exs index e4da84c10..d5c74a321 100644 --- a/test/formatter_test.exs +++ b/test/formatter_test.exs @@ -4,6 +4,10 @@ defmodule Pleroma.FormatterTest do use Pleroma.DataCase import Pleroma.Factory + setup_all do + Tesla.Mock.mock_global(fn env -> apply(HttpRequestMock, :request, [env]) end) + :ok + end describe ".add_hashtag_links" do test "turns hashtags into links" do diff --git a/test/support/http_request_mock.ex b/test/support/http_request_mock.ex index f44e9a1c6..80b84d591 100644 --- a/test/support/http_request_mock.ex +++ b/test/support/http_request_mock.ex @@ -22,6 +22,73 @@ def request( # GET Requests # def get(url, query \\ [], body \\ [], headers \\ []) + def get("https://social.heldscal.la/.well-known/webfinger?resource=https://social.heldscal.la/user/29191", + _, _, [Accept: "application/xrd+xml,application/jrd+json"]) do + {:ok, + %Tesla.Env{ + status: 200, + body: File.read!("test/fixtures/httpoison_mock/https___social.heldscal.la_user_29191.xml") + }} + end + + def get("https://pawoo.net/users/pekorino.atom", _, _, _) do + {:ok, + %Tesla.Env{ + status: 200, + body: File.read!("test/fixtures/httpoison_mock/https___pawoo.net_users_pekorino.atom") + }} + end + + def get("https://pawoo.net/.well-known/webfinger?resource=acct:https://pawoo.net/users/pekorino", + _, _, [Accept: "application/xrd+xml,application/jrd+json"]) do + {:ok, + %Tesla.Env{ + status: 200, + body: File.read!("test/fixtures/httpoison_mock/https___pawoo.net_users_pekorino.xml") + }} + end + + def get("https://social.stopwatchingus-heidelberg.de/api/statuses/user_timeline/18330.atom", _, _, _) do + {:ok, + %Tesla.Env{ + status: 200, + body: File.read!("test/fixtures/httpoison_mock/atarifrosch_feed.xml") + }} + end + + def get("https://social.stopwatchingus-heidelberg.de/.well-known/webfinger?resource=acct:https://social.stopwatchingus-heidelberg.de/user/18330", + _, _, [Accept: "application/xrd+xml,application/jrd+json"]) do + {:ok, + %Tesla.Env{ + status: 200, + body: File.read!("test/fixtures/httpoison_mock/atarifrosch_webfinger.xml") + }} + end + + def get("https://mamot.fr/users/Skruyb.atom", _, _, _) do + {:ok, + %Tesla.Env{ + status: 200, + body: File.read!("test/fixtures/httpoison_mock/https___mamot.fr_users_Skruyb.atom") + }} + end + + def get("https://mamot.fr/.well-known/webfinger?resource=acct:https://mamot.fr/users/Skruyb", + _, _, [Accept: "application/xrd+xml,application/jrd+json"]) do + {:ok, + %Tesla.Env{ + status: 200, + body: File.read!("test/fixtures/httpoison_mock/skruyb@mamot.fr.atom") + }} + end + + def get("https://social.heldscal.la/.well-known/webfinger?resource=nonexistant@social.heldscal.la", _, _, [Accept: "application/xrd+xml,application/jrd+json"]) do + {:ok, + %Tesla.Env{ + status: 200, + body: File.read!("test/fixtures/httpoison_mock/nonexistant@social.heldscal.la.xml") + }} + end def get("http://gs.example.org:4040/index.php/user/1", _, _, Accept: "application/activity+json") do {:ok, diff --git a/test/user_test.exs b/test/user_test.exs index 62104df90..d097eb171 100644 --- a/test/user_test.exs +++ b/test/user_test.exs @@ -9,6 +9,11 @@ defmodule Pleroma.UserTest do import Pleroma.Factory import Ecto.Query + setup_all do + Tesla.Mock.mock_global(fn env -> apply(HttpRequestMock, :request, [env]) end) + :ok + end + test "ap_id returns the activity pub id for the user" do user = UserBuilder.build() diff --git a/test/web/activity_pub/transmogrifier_test.exs b/test/web/activity_pub/transmogrifier_test.exs index faba80354..eeb0cb5cf 100644 --- a/test/web/activity_pub/transmogrifier_test.exs +++ b/test/web/activity_pub/transmogrifier_test.exs @@ -11,11 +11,8 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do import Pleroma.Factory alias Pleroma.Web.CommonAPI - - import Tesla.Mock - - setup do - mock(fn env -> apply(HttpRequestMock, :request, [env]) end) + setup_all do + Tesla.Mock.mock_global(fn env -> apply(HttpRequestMock, :request, [env]) end) :ok end diff --git a/test/web/ostatus/ostatus_controller_test.exs b/test/web/ostatus/ostatus_controller_test.exs index 6327a524e..411e89e94 100644 --- a/test/web/ostatus/ostatus_controller_test.exs +++ b/test/web/ostatus/ostatus_controller_test.exs @@ -4,10 +4,9 @@ defmodule Pleroma.Web.OStatus.OStatusControllerTest do alias Pleroma.{User, Repo} alias Pleroma.Web.CommonAPI alias Pleroma.Web.OStatus.ActivityRepresenter - import Tesla.Mock - setup do - mock(fn env -> apply(HttpRequestMock, :request, [env]) end) + setup_all do + Tesla.Mock.mock_global(fn env -> apply(HttpRequestMock, :request, [env]) end) :ok end diff --git a/test/web/ostatus/ostatus_test.exs b/test/web/ostatus/ostatus_test.exs index 83525456b..f3268e83d 100644 --- a/test/web/ostatus/ostatus_test.exs +++ b/test/web/ostatus/ostatus_test.exs @@ -5,10 +5,9 @@ defmodule Pleroma.Web.OStatusTest do alias Pleroma.{Object, Repo, User, Activity} import Pleroma.Factory import ExUnit.CaptureLog - import Tesla.Mock - setup do - mock(fn env -> apply(HttpRequestMock, :request, [env]) end) + setup_all do + Tesla.Mock.mock_global(fn env -> apply(HttpRequestMock, :request, [env]) end) :ok end