UndoFollowTest.php 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <?php
  2. namespace Tests\Unit\ActivityPub\Verb;
  3. use App\Util\ActivityPub\Validator\UndoFollow;
  4. use PHPUnit\Framework\Attributes\Test;
  5. use Tests\TestCase;
  6. class UndoFollowTest extends TestCase
  7. {
  8. protected array $validUndo;
  9. protected array $invalidUndo;
  10. public function setUp(): void
  11. {
  12. parent::setUp();
  13. $this->validUndo = json_decode('{"@context":["https://www.w3.org/ns/activitystreams","https://w3id.org/security/v1",{"toot":"http://joinmastodon.org/ns#","sensitive":"as:sensitive","ostatus":"http://ostatus.org#","movedTo":"as:movedTo","manuallyApprovesFollowers":"as:manuallyApprovesFollowers","inReplyToAtomUri":"ostatus:inReplyToAtomUri","conversation":"ostatus:conversation","atomUri":"ostatus:atomUri","Hashtag":"as:Hashtag","Emoji":"toot:Emoji"}],"signature":{"type":"RsaSignature2017","signatureValue":"Kn1/UkAQGJVaXBfWLAHcnwHg8YMAUqlEaBuYLazAG+pz5hqivsyrBmPV186Xzr+B4ZLExA9+SnOoNx/GOz4hBm0kAmukNSILAsUd84tcJ2yT9zc1RKtembK4WiwOw7li0+maeDN0HaB6t+6eTqsCWmtiZpprhXD8V1GGT8yG7X24fQ9oFGn+ng7lasbcCC0988Y1eGqNe7KryxcPuQz57YkDapvtONzk8gyLTkZMV4De93MyRHq6GVjQVIgtiYabQAxrX6Q8C+4P/jQoqdWJHEe+MY5JKyNaT/hMPt2Md1ok9fZQBGHlErk22/zy8bSN19GdG09HmIysBUHRYpBLig==","creator":"http://mastodon.example.org/users/admin#main-key","created":"2018-02-17T13:29:31Z"},"type":"Undo","object":{"type":"Follow","object":"http://localtesting.pleroma.lol/users/lain","nickname":"lain","id":"http://mastodon.example.org/users/admin#follows/2","actor":"http://mastodon.example.org/users/admin"},"actor":"http://mastodon.example.org/users/admin","id":"http://mastodon.example.org/users/admin#follow/2/undo"}', true, 8);
  14. $this->invalidUndo = [
  15. '@context' => 'https://www.w3.org/ns/activitystreams',
  16. 'id' => 'https://example.org/og/b3e4a40b-0b26-4c5a-9079-094bd633fab7',
  17. 'type' => 'Undo',
  18. 'actor' => 'https://example.org/u/alice',
  19. 'object' => [
  20. 'id' => 'https://example.net/u/bob#follows/bb27f601-ddb9-4567-8f16-023d90605ca9',
  21. 'type' => 'Follow',
  22. ]
  23. ];
  24. }
  25. #[Test]
  26. public function valid_undo_follow()
  27. {
  28. $this->assertTrue(UndoFollow::validate($this->validUndo));
  29. }
  30. #[Test]
  31. public function invalid_undo_follow()
  32. {
  33. $this->assertFalse(UndoFollow::validate($this->invalidUndo));
  34. }
  35. }