http_request_mock.ex 27.9 KB
Newer Older
kaniini's avatar
kaniini committed
1
# Pleroma: A lightweight social networking server
2
# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
kaniini's avatar
kaniini committed
3
4
# SPDX-License-Identifier: AGPL-3.0-only

Maksim's avatar
Maksim committed
5
defmodule HttpRequestMock do
Maksim's avatar
Maksim committed
6
7
  require Logger

Maksim's avatar
Maksim committed
8
9
10
11
12
13
14
15
16
17
18
19
  def request(
        %Tesla.Env{
          url: url,
          method: method,
          headers: headers,
          query: query,
          body: body
        } = _env
      ) do
    with {:ok, res} <- apply(__MODULE__, method, [url, query, body, headers]) do
      res
    else
20
21
22
23
24
25
      error ->
        with {:error, message} <- error do
          Logger.warn(message)
        end

        {_, _r} = error
Maksim's avatar
Maksim committed
26
27
28
29
30
31
    end
  end

  # GET Requests
  #
  def get(url, query \\ [], body \\ [], headers \\ [])
Maksim's avatar
Maksim committed
32
33
34
35
36

  def get("https://osada.macgirvin.com/channel/mike", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
37
       body: File.read!("test/fixtures/tesla_mock/https___osada.macgirvin.com_channel_mike.json")
Maksim's avatar
Maksim committed
38
39
40
     }}
  end

41
42
43
44
  def get("https://mastodon.social/users/emelie/statuses/101849165031453009", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
45
       body: File.read!("test/fixtures/tesla_mock/status.emelie.json")
46
47
48
49
50
51
52
     }}
  end

  def get("https://mastodon.social/users/emelie", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
53
       body: File.read!("test/fixtures/tesla_mock/emelie.json")
54
     }}
rinpatch's avatar
rinpatch committed
55
56
  end

Maksim's avatar
Maksim committed
57
58
59
60
  def get("https://mastodon.social/users/not_found", _, _, _) do
    {:ok, %Tesla.Env{status: 404}}
  end

rinpatch's avatar
rinpatch committed
61
62
63
64
  def get("https://mastodon.sdf.org/users/rinpatch", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
65
       body: File.read!("test/fixtures/tesla_mock/rinpatch.json")
rinpatch's avatar
rinpatch committed
66
     }}
67
68
  end

69
70
71
72
73
74
75
76
77
  def get(
        "https://mastodon.social/.well-known/webfinger?resource=https://mastodon.social/users/emelie",
        _,
        _,
        _
      ) do
    {:ok,
     %Tesla.Env{
       status: 200,
78
       body: File.read!("test/fixtures/tesla_mock/webfinger_emelie.json")
79
80
81
82
83
84
85
     }}
  end

  def get("https://mastodon.social/users/emelie.atom", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
86
       body: File.read!("test/fixtures/tesla_mock/emelie.atom")
87
88
89
     }}
  end

Maksim's avatar
Maksim committed
90
91
92
93
94
95
  def get(
        "https://osada.macgirvin.com/.well-known/webfinger?resource=acct:mike@osada.macgirvin.com",
        _,
        _,
        Accept: "application/xrd+xml,application/jrd+json"
      ) do
Maksim's avatar
Maksim committed
96
97
98
    {:ok,
     %Tesla.Env{
       status: 200,
99
       body: File.read!("test/fixtures/tesla_mock/mike@osada.macgirvin.com.json")
Maksim's avatar
Maksim committed
100
101
102
     }}
  end

Maksim's avatar
Maksim committed
103
104
105
106
107
108
  def get(
        "https://social.heldscal.la/.well-known/webfinger?resource=https://social.heldscal.la/user/29191",
        _,
        _,
        Accept: "application/xrd+xml,application/jrd+json"
      ) do
Maksim's avatar
Maksim committed
109
110
111
    {:ok,
     %Tesla.Env{
       status: 200,
112
       body: File.read!("test/fixtures/tesla_mock/https___social.heldscal.la_user_29191.xml")
Maksim's avatar
Maksim committed
113
114
115
116
117
118
119
     }}
  end

  def get("https://pawoo.net/users/pekorino.atom", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
120
       body: File.read!("test/fixtures/tesla_mock/https___pawoo.net_users_pekorino.atom")
Maksim's avatar
Maksim committed
121
122
123
     }}
  end

Maksim's avatar
Maksim committed
124
125
126
127
128
129
  def get(
        "https://pawoo.net/.well-known/webfinger?resource=acct:https://pawoo.net/users/pekorino",
        _,
        _,
        Accept: "application/xrd+xml,application/jrd+json"
      ) do
Maksim's avatar
Maksim committed
130
131
132
    {:ok,
     %Tesla.Env{
       status: 200,
133
       body: File.read!("test/fixtures/tesla_mock/https___pawoo.net_users_pekorino.xml")
Maksim's avatar
Maksim committed
134
135
136
     }}
  end

Maksim's avatar
Maksim committed
137
138
139
140
141
142
  def get(
        "https://social.stopwatchingus-heidelberg.de/api/statuses/user_timeline/18330.atom",
        _,
        _,
        _
      ) do
Maksim's avatar
Maksim committed
143
144
145
    {:ok,
     %Tesla.Env{
       status: 200,
146
       body: File.read!("test/fixtures/tesla_mock/atarifrosch_feed.xml")
Maksim's avatar
Maksim committed
147
148
149
     }}
  end

Maksim's avatar
Maksim committed
150
151
152
153
154
155
  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
Maksim's avatar
Maksim committed
156
157
158
    {:ok,
     %Tesla.Env{
       status: 200,
159
       body: File.read!("test/fixtures/tesla_mock/atarifrosch_webfinger.xml")
Maksim's avatar
Maksim committed
160
161
162
163
164
165
166
     }}
  end

  def get("https://mamot.fr/users/Skruyb.atom", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
167
       body: File.read!("test/fixtures/tesla_mock/https___mamot.fr_users_Skruyb.atom")
Maksim's avatar
Maksim committed
168
169
170
     }}
  end

Maksim's avatar
Maksim committed
171
172
173
174
175
176
  def get(
        "https://mamot.fr/.well-known/webfinger?resource=acct:https://mamot.fr/users/Skruyb",
        _,
        _,
        Accept: "application/xrd+xml,application/jrd+json"
      ) do
Maksim's avatar
Maksim committed
177
178
179
    {:ok,
     %Tesla.Env{
       status: 200,
180
       body: File.read!("test/fixtures/tesla_mock/skruyb@mamot.fr.atom")
Maksim's avatar
Maksim committed
181
182
183
     }}
  end

Maksim's avatar
Maksim committed
184
185
186
187
188
189
  def get(
        "https://social.heldscal.la/.well-known/webfinger?resource=nonexistant@social.heldscal.la",
        _,
        _,
        Accept: "application/xrd+xml,application/jrd+json"
      ) do
Maksim's avatar
Maksim committed
190
191
192
    {:ok,
     %Tesla.Env{
       status: 200,
193
       body: File.read!("test/fixtures/tesla_mock/nonexistant@social.heldscal.la.xml")
Maksim's avatar
Maksim committed
194
195
     }}
  end
Maksim's avatar
Maksim committed
196

kaniini's avatar
kaniini committed
197
198
199
200
  def get(
        "https://squeet.me/xrd/?uri=lain@squeet.me",
        _,
        _,
Maksim's avatar
Maksim committed
201
202
203
204
205
        Accept: "application/xrd+xml,application/jrd+json"
      ) do
    {:ok,
     %Tesla.Env{
       status: 200,
206
       body: File.read!("test/fixtures/tesla_mock/lain_squeet.me_webfinger.xml")
Maksim's avatar
Maksim committed
207
208
209
     }}
  end

kaniini's avatar
kaniini committed
210
211
212
213
  def get(
        "https://mst3k.interlinked.me/users/luciferMysticus",
        _,
        _,
Maksim's avatar
Maksim committed
214
215
216
217
218
        Accept: "application/activity+json"
      ) do
    {:ok,
     %Tesla.Env{
       status: 200,
219
       body: File.read!("test/fixtures/tesla_mock/lucifermysticus.json")
Maksim's avatar
Maksim committed
220
221
222
     }}
  end

Maksim's avatar
Maksim committed
223
224
225
226
  def get("https://prismo.news/@mxb", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
227
       body: File.read!("test/fixtures/tesla_mock/https___prismo.news__mxb.json")
Maksim's avatar
Maksim committed
228
229
230
     }}
  end

kaniini's avatar
kaniini committed
231
232
233
234
  def get(
        "https://hubzilla.example.org/channel/kaniini",
        _,
        _,
Maksim's avatar
Maksim committed
235
236
        Accept: "application/activity+json"
      ) do
Maksim's avatar
Maksim committed
237
238
239
    {:ok,
     %Tesla.Env{
       status: 200,
240
       body: File.read!("test/fixtures/tesla_mock/kaniini@hubzilla.example.org.json")
Maksim's avatar
Maksim committed
241
242
243
     }}
  end

Maksim's avatar
Maksim committed
244
  def get("https://niu.moe/users/rye", _, _, Accept: "application/activity+json") do
Maksim's avatar
Maksim committed
245
246
247
    {:ok,
     %Tesla.Env{
       status: 200,
248
       body: File.read!("test/fixtures/tesla_mock/rye.json")
Maksim's avatar
Maksim committed
249
250
251
     }}
  end

252
253
254
255
  def get("https://n1u.moe/users/rye", _, _, Accept: "application/activity+json") do
    {:ok,
     %Tesla.Env{
       status: 200,
256
       body: File.read!("test/fixtures/tesla_mock/rye.json")
257
258
259
     }}
  end

Maksim's avatar
Maksim committed
260
261
262
263
  def get("http://mastodon.example.org/users/admin/statuses/100787282858396771", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
Maksim's avatar
Maksim committed
264
265
       body:
         File.read!(
266
           "test/fixtures/tesla_mock/http___mastodon.example.org_users_admin_status_1234.json"
Maksim's avatar
Maksim committed
267
         )
Maksim's avatar
Maksim committed
268
269
270
     }}
  end

Maksim's avatar
Maksim committed
271
  def get("https://puckipedia.com/", _, _, Accept: "application/activity+json") do
Maksim's avatar
Maksim committed
272
273
274
    {:ok,
     %Tesla.Env{
       status: 200,
275
       body: File.read!("test/fixtures/tesla_mock/puckipedia.com.json")
Maksim's avatar
Maksim committed
276
277
278
279
280
281
282
     }}
  end

  def get("https://peertube.moe/accounts/7even", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
283
       body: File.read!("test/fixtures/tesla_mock/7even.json")
Maksim's avatar
Maksim committed
284
285
286
287
288
289
290
     }}
  end

  def get("https://peertube.moe/videos/watch/df5f464b-be8d-46fb-ad81-2d4c2d1630e3", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
291
       body: File.read!("test/fixtures/tesla_mock/peertube.moe-vid.json")
Maksim's avatar
Maksim committed
292
293
294
295
296
297
298
     }}
  end

  def get("https://baptiste.gelez.xyz/@/BaptisteGelez", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
299
       body: File.read!("test/fixtures/tesla_mock/baptiste.gelex.xyz-user.json")
Maksim's avatar
Maksim committed
300
301
302
303
304
305
306
     }}
  end

  def get("https://baptiste.gelez.xyz/~/PlumeDevelopment/this-month-in-plume-june-2018/", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
307
       body: File.read!("test/fixtures/tesla_mock/baptiste.gelex.xyz-article.json")
Maksim's avatar
Maksim committed
308
309
310
     }}
  end

311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
  def get("https://wedistribute.org/wp-json/pterotype/v1/object/85810", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
       body: File.read!("test/fixtures/tesla_mock/wedistribute-article.json")
     }}
  end

  def get("https://wedistribute.org/wp-json/pterotype/v1/actor/-blog", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
       body: File.read!("test/fixtures/tesla_mock/wedistribute-user.json")
     }}
  end

Maksim's avatar
Maksim committed
327
  def get("http://mastodon.example.org/users/admin", _, _, Accept: "application/activity+json") do
Maksim's avatar
Maksim committed
328
329
330
    {:ok,
     %Tesla.Env{
       status: 200,
331
       body: File.read!("test/fixtures/tesla_mock/admin@mastdon.example.org.json")
Maksim's avatar
Maksim committed
332
333
334
     }}
  end

335
336
337
338
  def get("http://mastodon.example.org/users/gargron", _, _, Accept: "application/activity+json") do
    {:error, :nxdomain}
  end

kaniini's avatar
kaniini committed
339
340
341
342
  def get(
        "http://mastodon.example.org/@admin/99541947525187367",
        _,
        _,
Maksim's avatar
Maksim committed
343
344
        Accept: "application/activity+json"
      ) do
Maksim's avatar
Maksim committed
345
346
347
348
349
350
    {:ok,
     %Tesla.Env{
       status: 200,
       body: File.read!("test/fixtures/mastodon-note-object.json")
     }}
  end
351
352
353
354
355
356
357
358

  def get("http://mastodon.example.org/@admin/99541947525187368", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 404,
       body: ""
     }}
  end
Maksim's avatar
Maksim committed
359
360
361
362
363

  def get("https://shitposter.club/notice/7369654", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
364
       body: File.read!("test/fixtures/tesla_mock/7369654.html")
Maksim's avatar
Maksim committed
365
366
367
     }}
  end

Maksim's avatar
Maksim committed
368
  def get("https://mstdn.io/users/mayuutann", _, _, Accept: "application/activity+json") do
Maksim's avatar
Maksim committed
369
370
371
    {:ok,
     %Tesla.Env{
       status: 200,
372
       body: File.read!("test/fixtures/tesla_mock/mayumayu.json")
Maksim's avatar
Maksim committed
373
374
375
     }}
  end

kaniini's avatar
kaniini committed
376
377
378
379
  def get(
        "https://mstdn.io/users/mayuutann/statuses/99568293732299394",
        _,
        _,
Maksim's avatar
Maksim committed
380
381
        Accept: "application/activity+json"
      ) do
Maksim's avatar
Maksim committed
382
383
384
    {:ok,
     %Tesla.Env{
       status: 200,
385
       body: File.read!("test/fixtures/tesla_mock/mayumayupost.json")
Maksim's avatar
Maksim committed
386
387
388
     }}
  end

Maksim's avatar
Maksim committed
389
390
391
392
393
394
  def get("https://pleroma.soykaf.com/users/lain/feed.atom", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
       body:
         File.read!(
395
           "test/fixtures/tesla_mock/https___pleroma.soykaf.com_users_lain_feed.atom.xml"
Maksim's avatar
Maksim committed
396
397
398
399
400
401
402
403
404
405
406
407
         )
     }}
  end

  def get(url, _, _, Accept: "application/xrd+xml,application/jrd+json")
      when url in [
             "https://pleroma.soykaf.com/.well-known/webfinger?resource=acct:https://pleroma.soykaf.com/users/lain",
             "https://pleroma.soykaf.com/.well-known/webfinger?resource=https://pleroma.soykaf.com/users/lain"
           ] do
    {:ok,
     %Tesla.Env{
       status: 200,
408
       body: File.read!("test/fixtures/tesla_mock/https___pleroma.soykaf.com_users_lain.xml")
Maksim's avatar
Maksim committed
409
410
411
412
413
414
415
416
417
     }}
  end

  def get("https://shitposter.club/api/statuses/user_timeline/1.atom", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
       body:
         File.read!(
418
           "test/fixtures/tesla_mock/https___shitposter.club_api_statuses_user_timeline_1.atom.xml"
Maksim's avatar
Maksim committed
419
420
421
422
423
424
425
426
427
428
429
430
431
         )
     }}
  end

  def get(
        "https://shitposter.club/.well-known/webfinger?resource=https://shitposter.club/user/1",
        _,
        _,
        Accept: "application/xrd+xml,application/jrd+json"
      ) do
    {:ok,
     %Tesla.Env{
       status: 200,
432
       body: File.read!("test/fixtures/tesla_mock/https___shitposter.club_user_1.xml")
Maksim's avatar
Maksim committed
433
434
435
436
437
438
439
     }}
  end

  def get("https://shitposter.club/notice/2827873", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
440
       body: File.read!("test/fixtures/tesla_mock/https___shitposter.club_notice_2827873.html")
Maksim's avatar
Maksim committed
441
442
443
444
445
446
447
448
449
     }}
  end

  def get("https://shitposter.club/api/statuses/show/2827873.atom", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
       body:
         File.read!(
450
           "test/fixtures/tesla_mock/https___shitposter.club_api_statuses_show_2827873.atom.xml"
Maksim's avatar
Maksim committed
451
452
453
454
455
456
457
458
459
460
461
462
         )
     }}
  end

  def get("https://testing.pleroma.lol/objects/b319022a-4946-44c5-9de9-34801f95507b", _, _, _) do
    {:ok, %Tesla.Env{status: 200}}
  end

  def get("https://shitposter.club/api/statuses/user_timeline/5381.atom", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
463
       body: File.read!("test/fixtures/tesla_mock/spc_5381.atom")
Maksim's avatar
Maksim committed
464
465
466
467
468
469
470
471
472
473
474
475
     }}
  end

  def get(
        "https://shitposter.club/.well-known/webfinger?resource=https://shitposter.club/user/5381",
        _,
        _,
        Accept: "application/xrd+xml,application/jrd+json"
      ) do
    {:ok,
     %Tesla.Env{
       status: 200,
476
       body: File.read!("test/fixtures/tesla_mock/spc_5381_xrd.xml")
Maksim's avatar
Maksim committed
477
478
479
480
481
482
483
     }}
  end

  def get("http://shitposter.club/.well-known/host-meta", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
484
       body: File.read!("test/fixtures/tesla_mock/shitposter.club_host_meta")
Maksim's avatar
Maksim committed
485
486
487
488
489
490
491
     }}
  end

  def get("https://shitposter.club/api/statuses/show/7369654.atom", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
492
       body: File.read!("test/fixtures/tesla_mock/7369654.atom")
Maksim's avatar
Maksim committed
493
494
495
496
497
498
499
     }}
  end

  def get("https://shitposter.club/notice/4027863", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
500
       body: File.read!("test/fixtures/tesla_mock/7369654.html")
Maksim's avatar
Maksim committed
501
502
503
504
505
506
507
     }}
  end

  def get("https://social.sakamoto.gq/users/eal/feed.atom", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
508
       body: File.read!("test/fixtures/tesla_mock/sakamoto_eal_feed.atom")
Maksim's avatar
Maksim committed
509
510
511
512
513
514
515
     }}
  end

  def get("http://social.sakamoto.gq/.well-known/host-meta", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
516
       body: File.read!("test/fixtures/tesla_mock/social.sakamoto.gq_host_meta")
Maksim's avatar
Maksim committed
517
518
519
520
521
522
523
524
525
526
527
528
     }}
  end

  def get(
        "https://social.sakamoto.gq/.well-known/webfinger?resource=https://social.sakamoto.gq/users/eal",
        _,
        _,
        Accept: "application/xrd+xml,application/jrd+json"
      ) do
    {:ok,
     %Tesla.Env{
       status: 200,
529
       body: File.read!("test/fixtures/tesla_mock/eal_sakamoto.xml")
Maksim's avatar
Maksim committed
530
531
532
     }}
  end

kaniini's avatar
kaniini committed
533
534
535
536
  def get(
        "https://social.sakamoto.gq/objects/0ccc1a2c-66b0-4305-b23a-7f7f2b040056",
        _,
        _,
Maksim's avatar
Maksim committed
537
538
        Accept: "application/atom+xml"
      ) do
539
    {:ok, %Tesla.Env{status: 200, body: File.read!("test/fixtures/tesla_mock/sakamoto.atom")}}
Maksim's avatar
Maksim committed
540
541
542
543
544
545
  end

  def get("http://mastodon.social/.well-known/host-meta", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
546
       body: File.read!("test/fixtures/tesla_mock/mastodon.social_host_meta")
Maksim's avatar
Maksim committed
547
548
549
550
551
552
553
554
555
556
557
558
559
     }}
  end

  def get(
        "https://mastodon.social/.well-known/webfinger?resource=https://mastodon.social/users/lambadalambda",
        _,
        _,
        Accept: "application/xrd+xml,application/jrd+json"
      ) do
    {:ok,
     %Tesla.Env{
       status: 200,
       body:
560
         File.read!("test/fixtures/tesla_mock/https___mastodon.social_users_lambadalambda.xml")
Maksim's avatar
Maksim committed
561
562
563
564
565
566
567
     }}
  end

  def get("http://gs.example.org/.well-known/host-meta", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
568
       body: File.read!("test/fixtures/tesla_mock/gs.example.org_host_meta")
Maksim's avatar
Maksim committed
569
570
571
572
573
574
575
576
577
578
579
580
581
     }}
  end

  def get(
        "http://gs.example.org/.well-known/webfinger?resource=http://gs.example.org:4040/index.php/user/1",
        _,
        _,
        Accept: "application/xrd+xml,application/jrd+json"
      ) do
    {:ok,
     %Tesla.Env{
       status: 200,
       body:
582
         File.read!("test/fixtures/tesla_mock/http___gs.example.org_4040_index.php_user_1.xml")
Maksim's avatar
Maksim committed
583
584
585
     }}
  end

586
587
588
589
590
591
592
593
594
  def get(
        "http://gs.example.org:4040/index.php/user/1",
        _,
        _,
        Accept: "application/activity+json"
      ) do
    {:ok, %Tesla.Env{status: 406, body: ""}}
  end

Maksim's avatar
Maksim committed
595
596
597
598
599
600
  def get("http://gs.example.org/index.php/api/statuses/user_timeline/1.atom", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
       body:
         File.read!(
601
           "test/fixtures/tesla_mock/http__gs.example.org_index.php_api_statuses_user_timeline_1.atom.xml"
Maksim's avatar
Maksim committed
602
603
604
605
606
607
608
609
610
611
         )
     }}
  end

  def get("https://social.heldscal.la/api/statuses/user_timeline/29191.atom", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
       body:
         File.read!(
612
           "test/fixtures/tesla_mock/https___social.heldscal.la_api_statuses_user_timeline_29191.atom.xml"
Maksim's avatar
Maksim committed
613
614
615
616
617
618
         )
     }}
  end

  def get("http://squeet.me/.well-known/host-meta", _, _, _) do
    {:ok,
619
     %Tesla.Env{status: 200, body: File.read!("test/fixtures/tesla_mock/squeet.me_host_meta")}}
Maksim's avatar
Maksim committed
620
621
  end

kaniini's avatar
kaniini committed
622
623
624
625
  def get(
        "https://squeet.me/xrd?uri=lain@squeet.me",
        _,
        _,
Maksim's avatar
Maksim committed
626
627
628
629
630
        Accept: "application/xrd+xml,application/jrd+json"
      ) do
    {:ok,
     %Tesla.Env{
       status: 200,
631
       body: File.read!("test/fixtures/tesla_mock/lain_squeet.me_webfinger.xml")
Maksim's avatar
Maksim committed
632
633
634
635
636
637
638
639
640
641
642
643
     }}
  end

  def get(
        "https://social.heldscal.la/.well-known/webfinger?resource=shp@social.heldscal.la",
        _,
        _,
        Accept: "application/xrd+xml,application/jrd+json"
      ) do
    {:ok,
     %Tesla.Env{
       status: 200,
644
       body: File.read!("test/fixtures/tesla_mock/shp@social.heldscal.la.xml")
Maksim's avatar
Maksim committed
645
646
647
     }}
  end

Maksim's avatar
Maksim committed
648
649
650
651
652
653
654
655
656
  def get(
        "https://social.heldscal.la/.well-known/webfinger?resource=invalid_content@social.heldscal.la",
        _,
        _,
        Accept: "application/xrd+xml,application/jrd+json"
      ) do
    {:ok, %Tesla.Env{status: 200, body: ""}}
  end

Maksim's avatar
Maksim committed
657
658
659
660
  def get("http://framatube.org/.well-known/host-meta", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
661
       body: File.read!("test/fixtures/tesla_mock/framatube.org_host_meta")
Maksim's avatar
Maksim committed
662
663
664
     }}
  end

kaniini's avatar
kaniini committed
665
666
667
668
  def get(
        "http://framatube.org/main/xrd?uri=framasoft@framatube.org",
        _,
        _,
Maksim's avatar
Maksim committed
669
670
671
672
673
674
        Accept: "application/xrd+xml,application/jrd+json"
      ) do
    {:ok,
     %Tesla.Env{
       status: 200,
       headers: [{"content-type", "application/json"}],
675
       body: File.read!("test/fixtures/tesla_mock/framasoft@framatube.org.json")
Maksim's avatar
Maksim committed
676
677
678
679
680
681
682
     }}
  end

  def get("http://gnusocial.de/.well-known/host-meta", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
683
       body: File.read!("test/fixtures/tesla_mock/gnusocial.de_host_meta")
Maksim's avatar
Maksim committed
684
685
686
     }}
  end

kaniini's avatar
kaniini committed
687
688
689
690
  def get(
        "http://gnusocial.de/main/xrd?uri=winterdienst@gnusocial.de",
        _,
        _,
Maksim's avatar
Maksim committed
691
692
693
694
695
        Accept: "application/xrd+xml,application/jrd+json"
      ) do
    {:ok,
     %Tesla.Env{
       status: 200,
696
       body: File.read!("test/fixtures/tesla_mock/winterdienst_webfinger.json")
Maksim's avatar
Maksim committed
697
698
699
700
701
702
703
     }}
  end

  def get("http://status.alpicola.com/.well-known/host-meta", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
704
       body: File.read!("test/fixtures/tesla_mock/status.alpicola.com_host_meta")
Maksim's avatar
Maksim committed
705
706
707
708
709
710
711
     }}
  end

  def get("http://macgirvin.com/.well-known/host-meta", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
712
       body: File.read!("test/fixtures/tesla_mock/macgirvin.com_host_meta")
Maksim's avatar
Maksim committed
713
714
715
716
717
718
719
     }}
  end

  def get("http://gerzilla.de/.well-known/host-meta", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
720
       body: File.read!("test/fixtures/tesla_mock/gerzilla.de_host_meta")
Maksim's avatar
Maksim committed
721
722
723
     }}
  end

kaniini's avatar
kaniini committed
724
725
726
727
  def get(
        "https://gerzilla.de/xrd/?uri=kaniini@gerzilla.de",
        _,
        _,
Maksim's avatar
Maksim committed
728
729
730
731
732
733
        Accept: "application/xrd+xml,application/jrd+json"
      ) do
    {:ok,
     %Tesla.Env{
       status: 200,
       headers: [{"content-type", "application/json"}],
734
       body: File.read!("test/fixtures/tesla_mock/kaniini@gerzilla.de.json")
Maksim's avatar
Maksim committed
735
736
737
     }}
  end

Maksim's avatar
Maksim committed
738
  def get("https://social.heldscal.la/api/statuses/user_timeline/23211.atom", _, _, _) do
Maksim's avatar
Maksim committed
739
740
741
742
743
    {:ok,
     %Tesla.Env{
       status: 200,
       body:
         File.read!(
744
           "test/fixtures/tesla_mock/https___social.heldscal.la_api_statuses_user_timeline_23211.atom.xml"
Maksim's avatar
Maksim committed
745
746
         )
     }}
Maksim's avatar
Maksim committed
747
748
  end

Maksim's avatar
Maksim committed
749
750
751
752
753
754
755
756
757
  def get(
        "https://social.heldscal.la/.well-known/webfinger?resource=https://social.heldscal.la/user/23211",
        _,
        _,
        _
      ) do
    {:ok,
     %Tesla.Env{
       status: 200,
758
       body: File.read!("test/fixtures/tesla_mock/https___social.heldscal.la_user_23211.xml")
Maksim's avatar
Maksim committed
759
     }}
Maksim's avatar
Maksim committed
760
761
762
  end

  def get("http://social.heldscal.la/.well-known/host-meta", _, _, _) do
Maksim's avatar
Maksim committed
763
764
765
    {:ok,
     %Tesla.Env{
       status: 200,
766
       body: File.read!("test/fixtures/tesla_mock/social.heldscal.la_host_meta")
Maksim's avatar
Maksim committed
767
     }}
Maksim's avatar
Maksim committed
768
769
770
  end

  def get("https://social.heldscal.la/.well-known/host-meta", _, _, _) do
Maksim's avatar
Maksim committed
771
772
773
    {:ok,
     %Tesla.Env{
       status: 200,
774
       body: File.read!("test/fixtures/tesla_mock/social.heldscal.la_host_meta")
Maksim's avatar
Maksim committed
775
     }}
Maksim's avatar
Maksim committed
776
777
778
779
780
781
  end

  def get("https://mastodon.social/users/lambadalambda.atom", _, _, _) do
    {:ok, %Tesla.Env{status: 200, body: File.read!("test/fixtures/lambadalambda.atom")}}
  end

782
783
784
785
  def get("https://mastodon.social/users/lambadalambda", _, _, _) do
    {:ok, %Tesla.Env{status: 200, body: File.read!("test/fixtures/lambadalambda.json")}}
  end

786
787
788
789
790
  def get("https://apfed.club/channel/indio", _, _, _) do
    {:ok,
     %Tesla.Env{status: 200, body: File.read!("test/fixtures/tesla_mock/osada-user-indio.json")}}
  end

Maksim's avatar
Maksim committed
791
792
  def get("https://social.heldscal.la/user/23211", _, _, Accept: "application/activity+json") do
    {:ok, Tesla.Mock.json(%{"id" => "https://social.heldscal.la/user/23211"}, status: 200)}
Maksim's avatar
Maksim committed
793
794
  end

795
796
797
798
  def get("http://example.com/ogp", _, _, _) do
    {:ok, %Tesla.Env{status: 200, body: File.read!("test/fixtures/rich_media/ogp.html")}}
  end

799
800
801
802
803
804
805
806
  def get("https://example.com/ogp", _, _, _) do
    {:ok, %Tesla.Env{status: 200, body: File.read!("test/fixtures/rich_media/ogp.html")}}
  end

  def get("https://pleroma.local/notice/9kCP7V", _, _, _) do
    {:ok, %Tesla.Env{status: 200, body: File.read!("test/fixtures/rich_media/ogp.html")}}
  end

807
808
809
810
811
812
813
814
  def get("http://localhost:4001/users/masto_closed/followers", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
       body: File.read!("test/fixtures/users_mock/masto_closed_followers.json")
     }}
  end

815
816
817
818
819
820
821
822
  def get("http://localhost:4001/users/masto_closed/followers?page=1", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
       body: File.read!("test/fixtures/users_mock/masto_closed_followers_page.json")
     }}
  end

823
824
825
826
827
828
829
830
  def get("http://localhost:4001/users/masto_closed/following", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
       body: File.read!("test/fixtures/users_mock/masto_closed_following.json")
     }}
  end

831
832
833
834
835
836
837
838
  def get("http://localhost:4001/users/masto_closed/following?page=1", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
       body: File.read!("test/fixtures/users_mock/masto_closed_following_page.json")
     }}
  end

839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
  def get("http://localhost:4001/users/fuser2/followers", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
       body: File.read!("test/fixtures/users_mock/pleroma_followers.json")
     }}
  end

  def get("http://localhost:4001/users/fuser2/following", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
       body: File.read!("test/fixtures/users_mock/pleroma_following.json")
     }}
  end

  def get("http://domain-with-errors:4001/users/fuser1/followers", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 504,
       body: ""
     }}
  end

  def get("http://domain-with-errors:4001/users/fuser1/following", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 504,
       body: ""
     }}
  end

871
872
873
874
875
876
877
878
  def get("http://example.com/ogp-missing-data", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
       body: File.read!("test/fixtures/rich_media/ogp-missing-data.html")
     }}
  end

879
880
881
882
883
884
885
886
  def get("https://example.com/ogp-missing-data", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
       body: File.read!("test/fixtures/rich_media/ogp-missing-data.html")
     }}
  end

kaniini's avatar
kaniini committed
887
  def get("http://example.com/malformed", _, _, _) do
kaniini's avatar
kaniini committed
888
889
    {:ok,
     %Tesla.Env{status: 200, body: File.read!("test/fixtures/rich_media/malformed-data.html")}}
kaniini's avatar
kaniini committed
890
891
  end

892
893
894
895
  def get("http://example.com/empty", _, _, _) do
    {:ok, %Tesla.Env{status: 200, body: "hello"}}
  end

896
897
898
899
900
901
902
903
  def get("http://404.site" <> _, _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 404,
       body: ""
     }}
  end

904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
  def get(
        "https://zetsubou.xn--q9jyb4c/.well-known/webfinger?resource=lain@zetsubou.xn--q9jyb4c",
        _,
        _,
        Accept: "application/xrd+xml,application/jrd+json"
      ) do
    {:ok,
     %Tesla.Env{
       status: 200,
       body: File.read!("test/fixtures/lain.xml")
     }}
  end

  def get(
        "https://zetsubou.xn--q9jyb4c/.well-known/webfinger?resource=https://zetsubou.xn--q9jyb4c/users/lain",
        _,
        _,
        Accept: "application/xrd+xml,application/jrd+json"
      ) do
    {:ok,
     %Tesla.Env{
       status: 200,
       body: File.read!("test/fixtures/lain.xml")
     }}
  end

  def get(
        "https://zetsubou.xn--q9jyb4c/.well-known/host-meta",
        _,
        _,
        _
      ) do
    {:ok,
     %Tesla.Env{
       status: 200,
       body: File.read!("test/fixtures/host-meta-zetsubou.xn--q9jyb4c.xml")
     }}
  end

943
944
945
946
947
948
949
950
  def get("https://info.pleroma.site/activity.json", _, _, Accept: "application/activity+json") do
    {:ok,
     %Tesla.Env{
       status: 200,
       body: File.read!("test/fixtures/tesla_mock/https__info.pleroma.site_activity.json")
     }}
  end

951
952
953
954
  def get("https://info.pleroma.site/activity.json", _, _, _) do
    {:ok, %Tesla.Env{status: 404, body: ""}}
  end

955
956
957
958
959
960
961
962
  def get("https://info.pleroma.site/activity2.json", _, _, Accept: "application/activity+json") do
    {:ok,
     %Tesla.Env{
       status: 200,
       body: File.read!("test/fixtures/tesla_mock/https__info.pleroma.site_activity2.json")
     }}
  end

963
964
965
966
  def get("https://info.pleroma.site/activity2.json", _, _, _) do
    {:ok, %Tesla.Env{status: 404, body: ""}}
  end

967
968
969
970
971
972
973
974
  def get("https://info.pleroma.site/activity3.json", _, _, Accept: "application/activity+json") do
    {:ok,
     %Tesla.Env{
       status: 200,
       body: File.read!("test/fixtures/tesla_mock/https__info.pleroma.site_activity3.json")
     }}
  end

975
976
977
978
  def get("https://info.pleroma.site/activity3.json", _, _, _) do
    {:ok, %Tesla.Env{status: 404, body: ""}}
  end

979
980
981
982
983
984
985
986
  def get("https://mstdn.jp/.well-known/webfinger?resource=acct:kpherox@mstdn.jp", _, _, _) do
    {:ok,
     %Tesla.Env{
       status: 200,
       body: File.read!("test/fixtures/tesla_mock/kpherox@mstdn.jp.xml")
     }}
  end

Haelwenn's avatar
Haelwenn committed
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
  def get("http://example.com/rel_me/anchor", _, _, _) do
    {:ok, %Tesla.Env{status: 200, body: File.read!("test/fixtures/rel_me_anchor.html")}}
  end

  def get("http://example.com/rel_me/anchor_nofollow", _, _, _) do
    {:ok, %Tesla.Env{status: 200, body: File.read!("test/fixtures/rel_me_anchor_nofollow.html")}}
  end

  def get("http://example.com/rel_me/link", _, _, _) do
    {:ok, %Tesla.Env{status: 200, body: File.read!("test/fixtures/rel_me_link.html")}}
  end

  def get("http://example.com/rel_me/null", _, _, _) do
    {:ok, %Tesla.Env{status: 200, body: File.read!("test/fixtures/rel_me_null.html")}}
For faster browsing, not all history is shown. View entire blame