AcceptVerbTest.php 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <?php
  2. namespace Tests\Unit\ActivityPub\Verb;
  3. use Tests\TestCase;
  4. use Illuminate\Foundation\Testing\WithFaker;
  5. use Illuminate\Foundation\Testing\RefreshDatabase;
  6. use App\Util\ActivityPub\Validator\Accept;
  7. class AcceptVerbTest extends TestCase
  8. {
  9. protected $validAccept;
  10. protected $invalidAccept;
  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. }