BearcapTest.php 2.3 KB

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