forked from mirror/pixelfed
67 lines
1.9 KiB
PHP
67 lines
1.9 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace Tests\Unit\Lexer;
|
||
|
|
||
|
use Tests\TestCase;
|
||
|
use Illuminate\Foundation\Testing\WithFaker;
|
||
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||
|
use App\Util\Lexer\Autolink;
|
||
|
use App\Util\Lexer\Extractor;
|
||
|
|
||
|
class StatusLexerTest extends TestCase
|
||
|
{
|
||
|
public $status;
|
||
|
public $entities;
|
||
|
public $autolink;
|
||
|
|
||
|
public function setUp()
|
||
|
{
|
||
|
parent::setUp();
|
||
|
$this->status = "@pixelfed hi, really like the website! #píxelfed";
|
||
|
$this->entities = Extractor::create()->extract($this->status);
|
||
|
$this->autolink = Autolink::create()->autolink($this->status);
|
||
|
}
|
||
|
|
||
|
public function testLexerExtractor()
|
||
|
{
|
||
|
$expected = [
|
||
|
"hashtags" => [
|
||
|
"píxelfed",
|
||
|
],
|
||
|
"urls" => [],
|
||
|
"mentions" => [
|
||
|
"pixelfed",
|
||
|
],
|
||
|
"replyto" => "pixelfed",
|
||
|
"hashtags_with_indices" => [
|
||
|
[
|
||
|
"hashtag" => "píxelfed",
|
||
|
"indices" => [
|
||
|
39,
|
||
|
48,
|
||
|
],
|
||
|
],
|
||
|
],
|
||
|
"urls_with_indices" => [],
|
||
|
"mentions_with_indices" => [
|
||
|
[
|
||
|
"screen_name" => "pixelfed",
|
||
|
"indices" => [
|
||
|
0,
|
||
|
9,
|
||
|
],
|
||
|
]
|
||
|
]
|
||
|
];
|
||
|
|
||
|
$this->assertEquals($this->entities, $expected);
|
||
|
}
|
||
|
|
||
|
public function testAutolink()
|
||
|
{
|
||
|
$expected = '@<a class="u-url mention" href="https://pixelfed.dev/pixelfed" rel="external nofollow noopener" target="_blank">pixelfed</a> hi, really like the website! <a href="https://pixelfed.dev/discover/tags/píxelfed?src=hash" title="#píxelfed" class="u-url hashtag" rel="external nofollow noopener">#píxelfed</a>';
|
||
|
|
||
|
$this->assertEquals($this->autolink, $expected);
|
||
|
}
|
||
|
}
|