1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2018 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
5 defmodule HttpRequestMock do
17 with {:ok, res} <- apply(__MODULE__, method, [url, query, body, headers]) do
28 def get(url, query \\ [], body \\ [], headers \\ [])
30 def get("https://osada.macgirvin.com/channel/mike", _, _, _) do
35 File.read!("test/fixtures/httpoison_mock/https___osada.macgirvin.com_channel_mike.json")
39 def get("https://mastodon.social/users/emelie/statuses/101849165031453009", _, _, _) do
43 body: File.read!("test/fixtures/httpoison_mock/status.emelie.json")
47 def get("https://mastodon.social/users/emelie", _, _, _) do
51 body: File.read!("test/fixtures/httpoison_mock/emelie.json")
56 "https://mastodon.social/.well-known/webfinger?resource=https://mastodon.social/users/emelie",
64 body: File.read!("test/fixtures/httpoison_mock/webfinger_emelie.json")
68 def get("https://mastodon.social/users/emelie.atom", _, _, _) do
72 body: File.read!("test/fixtures/httpoison_mock/emelie.atom")
77 "https://osada.macgirvin.com/.well-known/webfinger?resource=acct:mike@osada.macgirvin.com",
80 Accept: "application/xrd+xml,application/jrd+json"
85 body: File.read!("test/fixtures/httpoison_mock/mike@osada.macgirvin.com.json")
90 "https://social.heldscal.la/.well-known/webfinger?resource=https://social.heldscal.la/user/29191",
93 Accept: "application/xrd+xml,application/jrd+json"
98 body: File.read!("test/fixtures/httpoison_mock/https___social.heldscal.la_user_29191.xml")
102 def get("https://pawoo.net/users/pekorino.atom", _, _, _) do
106 body: File.read!("test/fixtures/httpoison_mock/https___pawoo.net_users_pekorino.atom")
111 "https://pawoo.net/.well-known/webfinger?resource=acct:https://pawoo.net/users/pekorino",
114 Accept: "application/xrd+xml,application/jrd+json"
119 body: File.read!("test/fixtures/httpoison_mock/https___pawoo.net_users_pekorino.xml")
124 "https://social.stopwatchingus-heidelberg.de/api/statuses/user_timeline/18330.atom",
132 body: File.read!("test/fixtures/httpoison_mock/atarifrosch_feed.xml")
137 "https://social.stopwatchingus-heidelberg.de/.well-known/webfinger?resource=acct:https://social.stopwatchingus-heidelberg.de/user/18330",
140 Accept: "application/xrd+xml,application/jrd+json"
145 body: File.read!("test/fixtures/httpoison_mock/atarifrosch_webfinger.xml")
149 def get("https://mamot.fr/users/Skruyb.atom", _, _, _) do
153 body: File.read!("test/fixtures/httpoison_mock/https___mamot.fr_users_Skruyb.atom")
158 "https://mamot.fr/.well-known/webfinger?resource=acct:https://mamot.fr/users/Skruyb",
161 Accept: "application/xrd+xml,application/jrd+json"
166 body: File.read!("test/fixtures/httpoison_mock/skruyb@mamot.fr.atom")
171 "https://social.heldscal.la/.well-known/webfinger?resource=nonexistant@social.heldscal.la",
174 Accept: "application/xrd+xml,application/jrd+json"
179 body: File.read!("test/fixtures/httpoison_mock/nonexistant@social.heldscal.la.xml")
184 "https://squeet.me/xrd/?uri=lain@squeet.me",
187 Accept: "application/xrd+xml,application/jrd+json"
192 body: File.read!("test/fixtures/httpoison_mock/lain_squeet.me_webfinger.xml")
197 "https://mst3k.interlinked.me/users/luciferMysticus",
200 Accept: "application/activity+json"
205 body: File.read!("test/fixtures/httpoison_mock/lucifermysticus.json")
209 def get("https://prismo.news/@mxb", _, _, _) do
213 body: File.read!("test/fixtures/httpoison_mock/https___prismo.news__mxb.json")
218 "https://hubzilla.example.org/channel/kaniini",
221 Accept: "application/activity+json"
226 body: File.read!("test/fixtures/httpoison_mock/kaniini@hubzilla.example.org.json")
230 def get("https://niu.moe/users/rye", _, _, Accept: "application/activity+json") do
234 body: File.read!("test/fixtures/httpoison_mock/rye.json")
238 def get("http://mastodon.example.org/users/admin/statuses/100787282858396771", _, _, _) do
244 "test/fixtures/httpoison_mock/http___mastodon.example.org_users_admin_status_1234.json"
249 def get("https://puckipedia.com/", _, _, Accept: "application/activity+json") do
253 body: File.read!("test/fixtures/httpoison_mock/puckipedia.com.json")
257 def get("https://peertube.moe/accounts/7even", _, _, _) do
261 body: File.read!("test/fixtures/httpoison_mock/7even.json")
265 def get("https://peertube.moe/videos/watch/df5f464b-be8d-46fb-ad81-2d4c2d1630e3", _, _, _) do
269 body: File.read!("test/fixtures/httpoison_mock/peertube.moe-vid.json")
273 def get("https://baptiste.gelez.xyz/@/BaptisteGelez", _, _, _) do
277 body: File.read!("test/fixtures/httpoison_mock/baptiste.gelex.xyz-user.json")
281 def get("https://baptiste.gelez.xyz/~/PlumeDevelopment/this-month-in-plume-june-2018/", _, _, _) do
285 body: File.read!("test/fixtures/httpoison_mock/baptiste.gelex.xyz-article.json")
289 def get("http://mastodon.example.org/users/admin", _, _, Accept: "application/activity+json") do
293 body: File.read!("test/fixtures/httpoison_mock/admin@mastdon.example.org.json")
298 "http://mastodon.example.org/@admin/99541947525187367",
301 Accept: "application/activity+json"
306 body: File.read!("test/fixtures/mastodon-note-object.json")
310 def get("https://shitposter.club/notice/7369654", _, _, _) do
314 body: File.read!("test/fixtures/httpoison_mock/7369654.html")
318 def get("https://mstdn.io/users/mayuutann", _, _, Accept: "application/activity+json") do
322 body: File.read!("test/fixtures/httpoison_mock/mayumayu.json")
327 "https://mstdn.io/users/mayuutann/statuses/99568293732299394",
330 Accept: "application/activity+json"
335 body: File.read!("test/fixtures/httpoison_mock/mayumayupost.json")
339 def get("https://pleroma.soykaf.com/users/lain/feed.atom", _, _, _) do
345 "test/fixtures/httpoison_mock/https___pleroma.soykaf.com_users_lain_feed.atom.xml"
350 def get(url, _, _, Accept: "application/xrd+xml,application/jrd+json")
352 "https://pleroma.soykaf.com/.well-known/webfinger?resource=acct:https://pleroma.soykaf.com/users/lain",
353 "https://pleroma.soykaf.com/.well-known/webfinger?resource=https://pleroma.soykaf.com/users/lain"
358 body: File.read!("test/fixtures/httpoison_mock/https___pleroma.soykaf.com_users_lain.xml")
362 def get("https://shitposter.club/api/statuses/user_timeline/1.atom", _, _, _) do
368 "test/fixtures/httpoison_mock/https___shitposter.club_api_statuses_user_timeline_1.atom.xml"
374 "https://shitposter.club/.well-known/webfinger?resource=https://shitposter.club/user/1",
377 Accept: "application/xrd+xml,application/jrd+json"
382 body: File.read!("test/fixtures/httpoison_mock/https___shitposter.club_user_1.xml")
386 def get("https://shitposter.club/notice/2827873", _, _, _) do
391 File.read!("test/fixtures/httpoison_mock/https___shitposter.club_notice_2827873.html")
395 def get("https://shitposter.club/api/statuses/show/2827873.atom", _, _, _) do
401 "test/fixtures/httpoison_mock/https___shitposter.club_api_statuses_show_2827873.atom.xml"
406 def get("https://testing.pleroma.lol/objects/b319022a-4946-44c5-9de9-34801f95507b", _, _, _) do
407 {:ok, %Tesla.Env{status: 200}}
410 def get("https://shitposter.club/api/statuses/user_timeline/5381.atom", _, _, _) do
414 body: File.read!("test/fixtures/httpoison_mock/spc_5381.atom")
419 "https://shitposter.club/.well-known/webfinger?resource=https://shitposter.club/user/5381",
422 Accept: "application/xrd+xml,application/jrd+json"
427 body: File.read!("test/fixtures/httpoison_mock/spc_5381_xrd.xml")
431 def get("http://shitposter.club/.well-known/host-meta", _, _, _) do
435 body: File.read!("test/fixtures/httpoison_mock/shitposter.club_host_meta")
439 def get("https://shitposter.club/api/statuses/show/7369654.atom", _, _, _) do
443 body: File.read!("test/fixtures/httpoison_mock/7369654.atom")
447 def get("https://shitposter.club/notice/4027863", _, _, _) do
451 body: File.read!("test/fixtures/httpoison_mock/7369654.html")
455 def get("https://social.sakamoto.gq/users/eal/feed.atom", _, _, _) do
459 body: File.read!("test/fixtures/httpoison_mock/sakamoto_eal_feed.atom")
463 def get("http://social.sakamoto.gq/.well-known/host-meta", _, _, _) do
467 body: File.read!("test/fixtures/httpoison_mock/social.sakamoto.gq_host_meta")
472 "https://social.sakamoto.gq/.well-known/webfinger?resource=https://social.sakamoto.gq/users/eal",
475 Accept: "application/xrd+xml,application/jrd+json"
480 body: File.read!("test/fixtures/httpoison_mock/eal_sakamoto.xml")
485 "https://social.sakamoto.gq/objects/0ccc1a2c-66b0-4305-b23a-7f7f2b040056",
488 Accept: "application/atom+xml"
490 {:ok, %Tesla.Env{status: 200, body: File.read!("test/fixtures/httpoison_mock/sakamoto.atom")}}
493 def get("http://mastodon.social/.well-known/host-meta", _, _, _) do
497 body: File.read!("test/fixtures/httpoison_mock/mastodon.social_host_meta")
502 "https://mastodon.social/.well-known/webfinger?resource=https://mastodon.social/users/lambadalambda",
505 Accept: "application/xrd+xml,application/jrd+json"
512 "test/fixtures/httpoison_mock/https___mastodon.social_users_lambadalambda.xml"
517 def get("http://gs.example.org/.well-known/host-meta", _, _, _) do
521 body: File.read!("test/fixtures/httpoison_mock/gs.example.org_host_meta")
526 "http://gs.example.org/.well-known/webfinger?resource=http://gs.example.org:4040/index.php/user/1",
529 Accept: "application/xrd+xml,application/jrd+json"
536 "test/fixtures/httpoison_mock/http___gs.example.org_4040_index.php_user_1.xml"
541 def get("http://gs.example.org/index.php/api/statuses/user_timeline/1.atom", _, _, _) do
547 "test/fixtures/httpoison_mock/http__gs.example.org_index.php_api_statuses_user_timeline_1.atom.xml"
552 def get("https://social.heldscal.la/api/statuses/user_timeline/29191.atom", _, _, _) do
558 "test/fixtures/httpoison_mock/https___social.heldscal.la_api_statuses_user_timeline_29191.atom.xml"
563 def get("http://squeet.me/.well-known/host-meta", _, _, _) do
565 %Tesla.Env{status: 200, body: File.read!("test/fixtures/httpoison_mock/squeet.me_host_meta")}}
569 "https://squeet.me/xrd?uri=lain@squeet.me",
572 Accept: "application/xrd+xml,application/jrd+json"
577 body: File.read!("test/fixtures/httpoison_mock/lain_squeet.me_webfinger.xml")
582 "https://social.heldscal.la/.well-known/webfinger?resource=shp@social.heldscal.la",
585 Accept: "application/xrd+xml,application/jrd+json"
590 body: File.read!("test/fixtures/httpoison_mock/shp@social.heldscal.la.xml")
594 def get("http://framatube.org/.well-known/host-meta", _, _, _) do
598 body: File.read!("test/fixtures/httpoison_mock/framatube.org_host_meta")
603 "http://framatube.org/main/xrd?uri=framasoft@framatube.org",
606 Accept: "application/xrd+xml,application/jrd+json"
611 headers: [{"content-type", "application/json"}],
612 body: File.read!("test/fixtures/httpoison_mock/framasoft@framatube.org.json")
616 def get("http://gnusocial.de/.well-known/host-meta", _, _, _) do
620 body: File.read!("test/fixtures/httpoison_mock/gnusocial.de_host_meta")
625 "http://gnusocial.de/main/xrd?uri=winterdienst@gnusocial.de",
628 Accept: "application/xrd+xml,application/jrd+json"
633 body: File.read!("test/fixtures/httpoison_mock/winterdienst_webfinger.json")
637 def get("http://status.alpicola.com/.well-known/host-meta", _, _, _) do
641 body: File.read!("test/fixtures/httpoison_mock/status.alpicola.com_host_meta")
645 def get("http://macgirvin.com/.well-known/host-meta", _, _, _) do
649 body: File.read!("test/fixtures/httpoison_mock/macgirvin.com_host_meta")
653 def get("http://gerzilla.de/.well-known/host-meta", _, _, _) do
657 body: File.read!("test/fixtures/httpoison_mock/gerzilla.de_host_meta")
662 "https://gerzilla.de/xrd/?uri=kaniini@gerzilla.de",
665 Accept: "application/xrd+xml,application/jrd+json"
670 headers: [{"content-type", "application/json"}],
671 body: File.read!("test/fixtures/httpoison_mock/kaniini@gerzilla.de.json")
675 def get("https://social.heldscal.la/api/statuses/user_timeline/23211.atom", _, _, _) do
681 "test/fixtures/httpoison_mock/https___social.heldscal.la_api_statuses_user_timeline_23211.atom.xml"
687 "https://social.heldscal.la/.well-known/webfinger?resource=https://social.heldscal.la/user/23211",
695 body: File.read!("test/fixtures/httpoison_mock/https___social.heldscal.la_user_23211.xml")
699 def get("http://social.heldscal.la/.well-known/host-meta", _, _, _) do
703 body: File.read!("test/fixtures/httpoison_mock/social.heldscal.la_host_meta")
707 def get("https://social.heldscal.la/.well-known/host-meta", _, _, _) do
711 body: File.read!("test/fixtures/httpoison_mock/social.heldscal.la_host_meta")
715 def get("https://mastodon.social/users/lambadalambda.atom", _, _, _) do
716 {:ok, %Tesla.Env{status: 200, body: File.read!("test/fixtures/lambadalambda.atom")}}
719 def get("https://mastodon.social/users/lambadalambda", _, _, _) do
720 {:ok, %Tesla.Env{status: 200, body: File.read!("test/fixtures/lambadalambda.json")}}
723 def get("https://social.heldscal.la/user/23211", _, _, Accept: "application/activity+json") do
724 {:ok, Tesla.Mock.json(%{"id" => "https://social.heldscal.la/user/23211"}, status: 200)}
727 def get("http://example.com/ogp", _, _, _) do
728 {:ok, %Tesla.Env{status: 200, body: File.read!("test/fixtures/rich_media/ogp.html")}}
731 def get("http://example.com/malformed", _, _, _) do
733 %Tesla.Env{status: 200, body: File.read!("test/fixtures/rich_media/malformed-data.html")}}
736 def get("http://example.com/empty", _, _, _) do
737 {:ok, %Tesla.Env{status: 200, body: "hello"}}
740 def get("http://404.site" <> _, _, _, _) do
748 def get(url, query, body, headers) do
750 "Not implemented the mock response for get #{inspect(url)}, #{query}, #{inspect(body)}, #{
758 def post(url, query \\ [], body \\ [], headers \\ [])
760 def post("http://example.org/needs_refresh", _, _, _) do
768 def post("http://200.site" <> _, _, _, _) do
776 def post("http://connrefused.site" <> _, _, _, _) do
777 {:error, :connrefused}
780 def post("http://404.site" <> _, _, _, _) do
788 def post(url, _query, _body, _headers) do
789 {:error, "Not implemented the mock response for post #{inspect(url)}"}