BearcapTest.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. namespace Tests\Unit;
  3. use App\Util\Lexer\Bearcap;
  4. use PHPUnit\Framework\Attributes\Test;
  5. use PHPUnit\Framework\TestCase;
  6. class BearcapTest extends TestCase
  7. {
  8. #[Test]
  9. public function validTest()
  10. {
  11. $str = 'bear:?t=LpVypnEUdHhwwgXE9tTqEwrtPvmLjqYaPexqyXnVo1flSfJy5AYMCdRPiFRmqld2&u=https://pixelfed.test/stories/admin/337892163734081536';
  12. $expected = [
  13. 'token' => 'LpVypnEUdHhwwgXE9tTqEwrtPvmLjqYaPexqyXnVo1flSfJy5AYMCdRPiFRmqld2',
  14. 'url' => 'https://pixelfed.test/stories/admin/337892163734081536',
  15. ];
  16. $actual = Bearcap::decode($str);
  17. $this->assertEquals($expected, $actual);
  18. }
  19. #[Test]
  20. public function invalidTokenParameterName()
  21. {
  22. $str = 'bear:?token=LpVypnEUdHhwwgXE9tTqEwrtPvmLjqYaPexqyXnVo1flSfJy5AYMCdRPiFRmqld2&u=https://pixelfed.test/stories/admin/337892163734081536';
  23. $actual = Bearcap::decode($str);
  24. $this->assertFalse($actual);
  25. }
  26. #[Test]
  27. public function invalidUrlParameterName()
  28. {
  29. $str = 'bear:?t=LpVypnEUdHhwwgXE9tTqEwrtPvmLjqYaPexqyXnVo1flSfJy5AYMCdRPiFRmqld2&url=https://pixelfed.test/stories/admin/337892163734081536';
  30. $actual = Bearcap::decode($str);
  31. $this->assertFalse($actual);
  32. }
  33. #[Test]
  34. public function invalidScheme()
  35. {
  36. $str = 'bearcap:?t=LpVypnEUdHhwwgXE9tTqEwrtPvmLjqYaPexqyXnVo1flSfJy5AYMCdRPiFRmqld2&url=https://pixelfed.test/stories/admin/337892163734081536';
  37. $actual = Bearcap::decode($str);
  38. $this->assertFalse($actual);
  39. }
  40. #[Test]
  41. public function missingToken()
  42. {
  43. $str = 'bear:?u=https://pixelfed.test/stories/admin/337892163734081536';
  44. $actual = Bearcap::decode($str);
  45. $this->assertFalse($actual);
  46. }
  47. #[Test]
  48. public function missingUrl()
  49. {
  50. $str = 'bear:?t=LpVypnEUdHhwwgXE9tTqEwrtPvmLjqYaPexqyXnVo1flSfJy5AYMCdRPiFRmqld2';
  51. $actual = Bearcap::decode($str);
  52. $this->assertFalse($actual);
  53. }
  54. #[Test]
  55. public function invalidHttpUrl()
  56. {
  57. $str = 'bear:?t=LpVypnEUdHhwwgXE9tTqEwrtPvmLjqYaPexqyXnVo1flSfJy5AYMCdRPiFRmqld2&u=http://pixelfed.test/stories/admin/337892163734081536';
  58. $actual = Bearcap::decode($str);
  59. $this->assertFalse($actual);
  60. }
  61. #[Test]
  62. public function invalidUrlSchema()
  63. {
  64. $str = 'bear:?t=LpVypnEUdHhwwgXE9tTqEwrtPvmLjqYaPexqyXnVo1flSfJy5AYMCdRPiFRmqld2&u=phar://pixelfed.test/stories/admin/337892163734081536';
  65. $actual = Bearcap::decode($str);
  66. $this->assertFalse($actual);
  67. }
  68. }