Skip to content

Commit 7b0ea3f

Browse files
committed
Update tests.
1 parent 955ac59 commit 7b0ea3f

File tree

10 files changed

+141
-6
lines changed

10 files changed

+141
-6
lines changed

composer.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@
1414
"symfony/polyfill-mbstring": "^1.0"
1515
},
1616
"require-dev": {
17-
"phpunit/phpunit": "^6.0|^7.0"
17+
"phpunit/phpunit": "^6.0|^7.0",
18+
"mockery/mockery": "^1.1"
1819
},
1920
"autoload": {
2021
"psr-4" : {

tests/AutolinkTest.php

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@
55
namespace OsiemSiedem\Tests\Autolink;
66

77
use OsiemSiedem\Autolink\Link;
8-
use PHPUnit\Framework\TestCase;
98
use OsiemSiedem\Autolink\Autolink;
9+
use OsiemSiedem\Tests\Autolink\TestCase;
1010
use OsiemSiedem\Autolink\Parsers\UrlParser;
1111
use OsiemSiedem\Autolink\Parsers\WwwParser;
1212
use OsiemSiedem\Autolink\Parsers\EmailParser;
13+
use OsiemSiedem\Autolink\Filters\LimitLengthFilter;
1314

1415
final class AutolinkTest extends TestCase
1516
{
@@ -329,4 +330,34 @@ public function testUrlsWithQuotes(): void
329330
$this->assertEquals("'<a href=\"http://example.com\">http://example.com</a>'", $this->autolink->convert("'http://example.com'"));
330331
$this->assertEquals('"<a href="http://example.com">http://example.com</a>"', $this->autolink->convert('"http://example.com"'));
331332
}
333+
334+
public function testAddFilter(): void
335+
{
336+
$url = 'http://example.com/some/very/long/link?foo=bar';
337+
338+
$autolink = new Autolink;
339+
$autolink->addParser(new UrlParser);
340+
341+
$autolink->convert($url, function ($link) {
342+
$this->assertEquals('http://example.com/some/very/long/link?foo=bar', $link->getTitle());
343+
344+
return $link;
345+
});
346+
347+
$autolink->addFilter(new LimitLengthFilter);
348+
349+
$autolink->convert($url, function ($link) {
350+
$this->assertEquals('http://example.com/some/very/l...', $link->getTitle());
351+
352+
return $link;
353+
});
354+
}
355+
356+
public function testIgnore(): void
357+
{
358+
$this->autolink->ignore(['a']);
359+
360+
$this->assertEquals('<a>http://example.com', $this->autolink->convert('<a>http://example.com'));
361+
$this->assertEquals('<b><a href="http://example.com">http://example.com</a></b> <a>http://example.com</a>', $this->autolink->convert('<b>http://example.com</b> <a>http://example.com</a>'));
362+
}
332363
}

tests/CursorTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44

55
namespace OsiemSiedem\Tests\Autolink;
66

7-
use PHPUnit\Framework\TestCase;
87
use OsiemSiedem\Autolink\Cursor;
8+
use OsiemSiedem\Tests\Autolink\TestCase;
99

1010
final class CursorTest extends TestCase
1111
{

tests/Facades/AutolinkTest.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace OsiemSiedem\Tests\Autolink\Filters;
6+
7+
use OsiemSiedem\Tests\Autolink\TestCase;
8+
use OsiemSiedem\Autolink\Facades\Autolink;
9+
10+
final class AutolinkTest extends TestCase
11+
{
12+
public function testFacade(): void
13+
{
14+
Autolink::shouldReceive('convert')
15+
->once()
16+
->with('http://example.com')
17+
->andReturn('<a href="http://example.com">http://example.com</a>');
18+
19+
$this->assertEquals('<a href="http://example.com">http://example.com</a>', Autolink::convert('http://example.com'));
20+
}
21+
}

tests/Filters/LimitLengthFilterTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
namespace OsiemSiedem\Tests\Autolink\Filters;
66

77
use OsiemSiedem\Autolink\Link;
8-
use PHPUnit\Framework\TestCase;
8+
use OsiemSiedem\Tests\Autolink\TestCase;
99
use OsiemSiedem\Autolink\Contracts\Filter;
1010
use OsiemSiedem\Autolink\Filters\LimitLengthFilter;
1111

tests/Filters/TrimFilterTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
namespace OsiemSiedem\Tests\Autolink\Filters;
66

77
use OsiemSiedem\Autolink\Link;
8-
use PHPUnit\Framework\TestCase;
8+
use OsiemSiedem\Tests\Autolink\TestCase;
99
use OsiemSiedem\Autolink\Contracts\Filter;
1010
use OsiemSiedem\Autolink\Filters\TrimFilter;
1111

tests/LinkTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
namespace OsiemSiedem\Tests\Autolink;
66

77
use OsiemSiedem\Autolink\Link;
8-
use PHPUnit\Framework\TestCase;
8+
use OsiemSiedem\Tests\Autolink\TestCase;
99

1010
final class LinkTest extends TestCase
1111
{

tests/Parsers/UrlParserTest.php

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace OsiemSiedem\Tests\Autolink\Parsers;
6+
7+
use OsiemSiedem\Autolink\Link;
8+
use OsiemSiedem\Autolink\Cursor;
9+
use OsiemSiedem\Tests\Autolink\TestCase;
10+
use OsiemSiedem\Autolink\Parsers\UrlParser;
11+
12+
final class UrlParserTest extends TestCase
13+
{
14+
public function testParse(): void
15+
{
16+
$cursor = new Cursor('://');
17+
$parser = new UrlParser;
18+
19+
$this->assertNull($parser->parse($cursor));
20+
}
21+
22+
public function testDomainName(): void
23+
{
24+
$cursor = new Cursor('://@');
25+
$parser = new UrlParser;
26+
27+
$this->assertNull($parser->parse($cursor));
28+
}
29+
}

tests/Parsers/WwwParserTest.php

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace OsiemSiedem\Tests\Autolink\Parsers;
6+
7+
use OsiemSiedem\Autolink\Link;
8+
use OsiemSiedem\Autolink\Cursor;
9+
use OsiemSiedem\Tests\Autolink\TestCase;
10+
use OsiemSiedem\Autolink\Parsers\WwwParser;
11+
12+
final class WwwParserTest extends TestCase
13+
{
14+
public function testParse(): void
15+
{
16+
$cursor = new Cursor('www.localhost');
17+
$parser = new WwwParser;
18+
19+
$this->assertNull($parser->parse($cursor));
20+
}
21+
22+
public function testStopsParsingAtWhitespace(): void
23+
{
24+
$cursor = new Cursor("www.example.com\n");
25+
$parser = new WwwParser;
26+
27+
$this->assertInstanceOf(Link::class, $parser->parse($cursor));
28+
}
29+
}

tests/TestCase.php

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace OsiemSiedem\Tests\Autolink;
6+
7+
use Illuminate\Support\Facades\Facade;
8+
use PHPUnit\Framework\TestCase as BaseTestCase;
9+
use Mockery\Adapter\Phpunit\MockeryPHPUnitIntegration;
10+
11+
abstract class TestCase extends BaseTestCase
12+
{
13+
use MockeryPHPUnitIntegration;
14+
15+
/**
16+
* Setup the test environment.
17+
*
18+
* @return void
19+
*/
20+
protected function setUp()
21+
{
22+
Facade::clearResolvedInstances();
23+
}
24+
}

0 commit comments

Comments
 (0)