38 lines
1.2 KiB
PHP
38 lines
1.2 KiB
PHP
|
<?php declare(strict_types=1);
|
||
|
|
||
|
use PHPUnit\Framework\TestCase;
|
||
|
use Symfony\Contracts\HttpClient\ResponseInterface;
|
||
|
use Lewisdale\Webmentions\EndpointParser;
|
||
|
|
||
|
|
||
|
class EndpointParserTest extends TestCase {
|
||
|
public function testParsesRelativeEndpointFromResponseHeaders() {
|
||
|
$response = $this->createStub(ResponseInterface::class);
|
||
|
|
||
|
$response->method('getHeaders')
|
||
|
->willReturn([
|
||
|
"link" => ["</test/1/webmention>; rel=webmention"],
|
||
|
]);
|
||
|
|
||
|
$response->method('getInfo')
|
||
|
->willReturn('https://webmention.rocks/test/1');
|
||
|
|
||
|
$this->assertSame("https://webmention.rocks/test/1/webmention", EndpointParser::parse($response));
|
||
|
}
|
||
|
|
||
|
public function testParsesRelativeEndpointWithQuotedRelInResponseHeader() {
|
||
|
$response = $this->createStub(ResponseInterface::class);
|
||
|
|
||
|
$response->method('getHeaders')
|
||
|
->willReturn([
|
||
|
"link" => ['</test/5/webmention>; rel="webmention"'],
|
||
|
]);
|
||
|
|
||
|
|
||
|
$response->method('getInfo')
|
||
|
->willReturn('https://webmention.rocks/test/5');
|
||
|
|
||
|
$this->assertSame("https://webmention.rocks/test/5/webmention", EndpointParser::parse($response));
|
||
|
}
|
||
|
|
||
|
}
|