AcceptVerbTest.php 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <?php
  2. namespace Tests\Unit\ActivityPub\Verb;
  3. use App\Util\ActivityPub\Validator\Accept;
  4. use PHPUnit\Framework\Attributes\Test;
  5. use Tests\TestCase;
  6. class AcceptVerbTest extends TestCase
  7. {
  8. protected array $validAccept;
  9. protected array $invalidAccept;
  10. protected array $mastodonAccept;
  11. public function setUp(): void
  12. {
  13. parent::setUp();
  14. $this->validAccept = [
  15. '@context' => 'https://www.w3.org/ns/activitystreams',
  16. 'id' => 'https://example.org/og/b3e4a40b-0b26-4c5a-9079-094bd633fab7',
  17. 'type' => 'Accept',
  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. 'actor' => 'https://example.net/u/bob',
  23. 'object' => 'https://example.org/u/alice'
  24. ]
  25. ];
  26. $this->invalidAccept = [
  27. '@context' => 'https://www.w3.org/ns/activitystreams',
  28. 'id' => 'https://example.org/og/b3e4a40b-0b26-4c5a-9079-094bd633fab7',
  29. 'type' => 'Accept2',
  30. 'actor' => 'https://example.org/u/alice',
  31. 'object' => [
  32. 'id' => 'https://example.net/u/bob#follows/bb27f601-ddb9-4567-8f16-023d90605ca9',
  33. 'type' => 'Follow',
  34. 'actor' => 'https://example.net/u/bob',
  35. 'object' => 'https://example.org/u/alice'
  36. ]
  37. ];
  38. $this->mastodonAccept = [
  39. '@context' => [
  40. 'https://www.w3.org/ns/activitystreams',
  41. 'https://w3id.org/security/v1',
  42. [
  43. 'toot' => 'https://joinmastodon.org/ns#',
  44. 'sensitive' => 'as:sensitive',
  45. 'ostatus' => 'https://ostatus.org#',
  46. 'movedTo' => 'as:movedTo',
  47. 'manuallyApprovesFollowers' => 'as:manuallyApprovesFollowers',
  48. 'inReplyToAtomUri' => 'ostatus:inReplyToAtomUri',
  49. 'conversation' => 'ostatus:conversation',
  50. 'atomUri' => 'ostatus:atomUri',
  51. 'Hashtag' => 'as:Hashtag',
  52. 'Emoji' => 'toot:Emoji',
  53. ],
  54. ],
  55. 'type' => 'Accept',
  56. 'object' => [
  57. 'type' => 'Follow',
  58. 'object' => 'https://mastodon.example.org/users/admin',
  59. 'id' => 'https://pixelfed.dev/users/dsup#follows/4',
  60. 'actor' => 'https://pixelfed.dev/users/dsup',
  61. ],
  62. 'nickname' => 'dsup',
  63. 'id' => 'https://mastodon.example.org/users/admin#accepts/follows/4',
  64. 'actor' => 'https://mastodon.example.org/users/admin',
  65. 'signature' => [
  66. 'type' => 'RsaSignature2017',
  67. 'signatureValue' => 'rBzK4Kqhd4g7HDS8WE5oRbWQb2R+HF/6awbUuMWhgru/xCODT0SJWSri0qWqEO4fPcpoUyz2d25cw6o+iy9wiozQb3hQNnu69AR+H5Mytc06+g10KCHexbGhbAEAw/7IzmeXELHUbaqeduaDIbdt1zw4RkwLXdqgQcGXTJ6ND1wM3WMHXQCK1m0flasIXFoBxpliPAGiElV8s0+Ltuh562GvflG3kB3WO+j+NaR0ZfG5G9N88xMj9UQlCKit5gpAE5p6syUsCU2WGBHywTumv73i3OVTIFfq+P9AdMsRuzw1r7zoKEsthW4aOzLQDi01ZjvdBz8zH6JnjDU7SMN/Ig==',
  68. 'creator' => 'https://mastodon.example.org/users/admin#main-key',
  69. 'created' => '2018-02-17T14:36:41Z',
  70. ],
  71. ];
  72. }
  73. #[Test]
  74. public function basic_accept()
  75. {
  76. $this->assertTrue(Accept::validate($this->validAccept));
  77. }
  78. #[Test]
  79. public function invalid_accept()
  80. {
  81. $this->assertFalse(Accept::validate($this->invalidAccept));
  82. }
  83. #[Test]
  84. public function mastodon_accept()
  85. {
  86. $this->assertTrue(Accept::validate($this->mastodonAccept));
  87. }
  88. }