|
@@ -0,0 +1,77 @@
|
|
|
|
+<?php
|
|
|
|
+
|
|
|
|
+namespace Tests\Unit;
|
|
|
|
+
|
|
|
|
+use PHPUnit\Framework\TestCase;
|
|
|
|
+use App\Util\Lexer\Bearcap;
|
|
|
|
+
|
|
|
|
+class BearcapTest extends TestCase
|
|
|
|
+{
|
|
|
|
+ /** @test */
|
|
|
|
+ public function validTest()
|
|
|
|
+ {
|
|
|
|
+ $str = 'bear:?t=LpVypnEUdHhwwgXE9tTqEwrtPvmLjqYaPexqyXnVo1flSfJy5AYMCdRPiFRmqld2&u=https://pixelfed.test/stories/admin/337892163734081536';
|
|
|
|
+ $expected = [
|
|
|
|
+ "token" => "LpVypnEUdHhwwgXE9tTqEwrtPvmLjqYaPexqyXnVo1flSfJy5AYMCdRPiFRmqld2",
|
|
|
|
+ "url" => "https://pixelfed.test/stories/admin/337892163734081536",
|
|
|
|
+ ];
|
|
|
|
+ $actual = Bearcap::decode($str);
|
|
|
|
+ $this->assertEquals($expected, $actual);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /** @test */
|
|
|
|
+ public function invalidTokenParameterName()
|
|
|
|
+ {
|
|
|
|
+ $str = 'bear:?token=LpVypnEUdHhwwgXE9tTqEwrtPvmLjqYaPexqyXnVo1flSfJy5AYMCdRPiFRmqld2&u=https://pixelfed.test/stories/admin/337892163734081536';
|
|
|
|
+ $actual = Bearcap::decode($str);
|
|
|
|
+ $this->assertFalse($actual);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /** @test */
|
|
|
|
+ public function invalidUrlParameterName()
|
|
|
|
+ {
|
|
|
|
+ $str = 'bear:?t=LpVypnEUdHhwwgXE9tTqEwrtPvmLjqYaPexqyXnVo1flSfJy5AYMCdRPiFRmqld2&url=https://pixelfed.test/stories/admin/337892163734081536';
|
|
|
|
+ $actual = Bearcap::decode($str);
|
|
|
|
+ $this->assertFalse($actual);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /** @test */
|
|
|
|
+ public function invalidScheme()
|
|
|
|
+ {
|
|
|
|
+ $str = 'bearcap:?t=LpVypnEUdHhwwgXE9tTqEwrtPvmLjqYaPexqyXnVo1flSfJy5AYMCdRPiFRmqld2&url=https://pixelfed.test/stories/admin/337892163734081536';
|
|
|
|
+ $actual = Bearcap::decode($str);
|
|
|
|
+ $this->assertFalse($actual);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /** @test */
|
|
|
|
+ public function missingToken()
|
|
|
|
+ {
|
|
|
|
+ $str = 'bear:?u=https://pixelfed.test/stories/admin/337892163734081536';
|
|
|
|
+ $actual = Bearcap::decode($str);
|
|
|
|
+ $this->assertFalse($actual);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /** @test */
|
|
|
|
+ public function missingUrl()
|
|
|
|
+ {
|
|
|
|
+ $str = 'bear:?t=LpVypnEUdHhwwgXE9tTqEwrtPvmLjqYaPexqyXnVo1flSfJy5AYMCdRPiFRmqld2';
|
|
|
|
+ $actual = Bearcap::decode($str);
|
|
|
|
+ $this->assertFalse($actual);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /** @test */
|
|
|
|
+ public function invalidHttpUrl()
|
|
|
|
+ {
|
|
|
|
+ $str = 'bear:?t=LpVypnEUdHhwwgXE9tTqEwrtPvmLjqYaPexqyXnVo1flSfJy5AYMCdRPiFRmqld2&u=http://pixelfed.test/stories/admin/337892163734081536';
|
|
|
|
+ $actual = Bearcap::decode($str);
|
|
|
|
+ $this->assertFalse($actual);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /** @test */
|
|
|
|
+ public function invalidUrlSchema()
|
|
|
|
+ {
|
|
|
|
+ $str = 'bear:?t=LpVypnEUdHhwwgXE9tTqEwrtPvmLjqYaPexqyXnVo1flSfJy5AYMCdRPiFRmqld2&u=phar://pixelfed.test/stories/admin/337892163734081536';
|
|
|
|
+ $actual = Bearcap::decode($str);
|
|
|
|
+ $this->assertFalse($actual);
|
|
|
|
+ }
|
|
|
|
+}
|