StoryValidationTest.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <?php
  2. namespace Tests\Unit\ActivityPub;
  3. use PHPUnit\Framework\TestCase;
  4. use App\Util\ActivityPub\Validator\StoryValidator;
  5. class StoryValidationTest extends TestCase
  6. {
  7. public function setUp(): void
  8. {
  9. parent::setUp();
  10. $this->activity = json_decode('{"@context":"https://www.w3.org/ns/activitystreams","id":"https://pixelfed.test/stories/dansup/338581222496276480","type":"Story","to":["https://pixelfed.test/users/dansup/followers"],"cc":[],"attributedTo":"https://pixelfed.test/users/dansup","published":"2021-09-01T07:20:53+00:00","expiresAt":"2021-09-02T07:21:04+00:00","duration":3,"can_reply":true,"can_react":true,"attachment":{"type":"Image","url":"https://pixelfed.test/storage/_esm.t3/xV9/R2LF1xwhAA/011oqKVPDySG3WCPW7yIs2wobvccoITMnG/yT_FZX04f2DCzTA3K8HD2OS7FptXTHPiE1c_ZkHASBQ8UlPKH4.jpg","mediaType":"image/jpeg"}}', true);
  11. }
  12. /** @test */
  13. public function schemaTest()
  14. {
  15. $this->assertTrue(StoryValidator::validate($this->activity));
  16. }
  17. /** @test */
  18. public function invalidContext()
  19. {
  20. $activity = $this->activity;
  21. unset($activity['@context']);
  22. $activity['@@context'] = 'https://www.w3.org/ns/activitystreams';
  23. $this->assertFalse(StoryValidator::validate($activity));
  24. }
  25. /** @test */
  26. public function missingContext()
  27. {
  28. $activity = $this->activity;
  29. unset($activity['@context']);
  30. $this->assertFalse(StoryValidator::validate($activity));
  31. }
  32. /** @test */
  33. public function missingId()
  34. {
  35. $activity = $this->activity;
  36. unset($activity['id']);
  37. $this->assertFalse(StoryValidator::validate($activity));
  38. }
  39. /** @test */
  40. public function missingType()
  41. {
  42. $activity = $this->activity;
  43. unset($activity['type']);
  44. $this->assertFalse(StoryValidator::validate($activity));
  45. }
  46. /** @test */
  47. public function invalidType()
  48. {
  49. $activity = $this->activity;
  50. $activity['type'] = 'Store';
  51. $this->assertFalse(StoryValidator::validate($activity));
  52. }
  53. /** @test */
  54. public function missingTo()
  55. {
  56. $activity = $this->activity;
  57. unset($activity['to']);
  58. $this->assertFalse(StoryValidator::validate($activity));
  59. }
  60. /** @test */
  61. public function missingTimestamps()
  62. {
  63. $activity = $this->activity;
  64. unset($activity['published']);
  65. $this->assertFalse(StoryValidator::validate($activity));
  66. $activity = $this->activity;
  67. unset($activity['expiresAt']);
  68. $this->assertFalse(StoryValidator::validate($activity));
  69. }
  70. }