|
<?php
|
|
use Symfony\Component\HttpFoundation\Request;
|
|
use Symfony\Component\HttpFoundation\Response;
|
|
|
|
class AuthorTest extends PHPUnit\Framework\TestCase
|
|
{
|
|
|
|
private $http;
|
|
|
|
public function setUp(): void
|
|
{
|
|
$this->client = new Parse();
|
|
$this->client->http = new p3k\HTTP\Test(dirname(__FILE__).'/data/');
|
|
$this->client->mc = null;
|
|
}
|
|
|
|
private function parse($params)
|
|
{
|
|
$request = new Request($params);
|
|
$response = new Response();
|
|
return $this->client->parse($request, $response);
|
|
}
|
|
|
|
public function testHEntryAuthorIsName()
|
|
{
|
|
$url = 'http://author.example.com/h-entry-author-is-name';
|
|
$response = $this->parse(['url' => $url]);
|
|
|
|
$body = $response->getContent();
|
|
$this->assertEquals(200, $response->getStatusCode());
|
|
$data = json_decode($body);
|
|
|
|
$this->assertEquals('mf2+html', $data->{'source-format'});
|
|
$this->assertEmpty($data->data->author->url);
|
|
$this->assertEquals('Author Name', $data->data->author->name);
|
|
$this->assertEmpty($data->data->author->photo);
|
|
}
|
|
|
|
public function testHEntryAuthorIsRelLinkToHCardOnPage()
|
|
{
|
|
$url = 'http://author.example.com/h-entry-author-is-rel-link-to-h-card-on-page';
|
|
$response = $this->parse(['url' => $url]);
|
|
|
|
$body = $response->getContent();
|
|
|
|
$this->assertEquals(200, $response->getStatusCode());
|
|
$data = json_decode($body);
|
|
|
|
$this->assertEquals('http://author.example.com/about', $data->data->author->url);
|
|
$this->assertEquals('Author', $data->data->author->name);
|
|
$this->assertEquals('http://author.example.com/photo.jpg', $data->data->author->photo);
|
|
}
|
|
|
|
public function testHEntryAuthorIsRelLinkToHCardWithRelMe()
|
|
{
|
|
$url = 'http://author.example.com/h-entry-author-is-rel-link-to-h-card-with-rel-me';
|
|
$response = $this->parse(['url' => $url]);
|
|
|
|
$body = $response->getContent();
|
|
$this->assertEquals(200, $response->getStatusCode());
|
|
$data = json_decode($body);
|
|
|
|
$this->assertEquals('http://author.example.com/about-rel-me', $data->data->author->url);
|
|
$this->assertEquals('Author Full Name', $data->data->author->name);
|
|
$this->assertEquals('http://author.example.com/photo.jpg', $data->data->author->photo);
|
|
}
|
|
|
|
public function testHEntryAuthorIsRelLinkToHCardWithUrlUid()
|
|
{
|
|
$url = 'http://author.example.com/h-entry-author-is-rel-link-to-h-card-with-url-uid';
|
|
$response = $this->parse(['url' => $url]);
|
|
|
|
$body = $response->getContent();
|
|
$this->assertEquals(200, $response->getStatusCode());
|
|
$data = json_decode($body);
|
|
|
|
$this->assertEquals('http://author.example.com/about-url-uid', $data->data->author->url);
|
|
$this->assertEquals('Author Full Name', $data->data->author->name);
|
|
$this->assertEquals('http://author.example.com/photo.jpg', $data->data->author->photo);
|
|
}
|
|
|
|
public function testHEntryAuthorIsUrlToHCardOnPage()
|
|
{
|
|
$url = 'http://author.example.com/h-entry-author-is-url-to-h-card-on-page';
|
|
$response = $this->parse(['url' => $url]);
|
|
|
|
$body = $response->getContent();
|
|
$this->assertEquals(200, $response->getStatusCode());
|
|
$data = json_decode($body);
|
|
|
|
$this->assertEquals('http://author.example.com/about', $data->data->author->url);
|
|
$this->assertEquals('Author', $data->data->author->name);
|
|
$this->assertEquals('http://author.example.com/photo.jpg', $data->data->author->photo);
|
|
}
|
|
|
|
public function testHEntryAuthorIsUrlToHCardWithMultipleLinks()
|
|
{
|
|
$url = 'http://author.example.com/h-entry-author-is-url-to-h-card-with-multiple-links';
|
|
$response = $this->parse(['url' => $url]);
|
|
|
|
$body = $response->getContent();
|
|
|
|
$this->assertEquals(200, $response->getStatusCode());
|
|
$data = json_decode($body);
|
|
|
|
$this->assertEquals('http://author.example.com/about-with-multiple-urls', $data->data->author->url);
|
|
$this->assertEquals('Author Full Name', $data->data->author->name);
|
|
$this->assertEquals('http://author.example.com/photo.jpg', $data->data->author->photo);
|
|
}
|
|
|
|
public function testHEntryAuthorIsUrlToHCardWithNoURL()
|
|
{
|
|
$url = 'http://author.example.com/h-entry-author-is-url-to-h-card-with-no-url';
|
|
$response = $this->parse(['url' => $url]);
|
|
|
|
$body = $response->getContent();
|
|
|
|
$this->assertEquals(200, $response->getStatusCode());
|
|
$data = json_decode($body);
|
|
|
|
$this->assertEquals('http://author.example.com/about-no-url', $data->data->author->url);
|
|
$this->assertEquals('Author Full Name', $data->data->author->name);
|
|
$this->assertEquals('http://author.example.com/photo.jpg', $data->data->author->photo);
|
|
}
|
|
|
|
public function testHEntryHasHCardAndUrlAuthor()
|
|
{
|
|
$url = 'http://author.example.com/h-entry-has-h-card-and-url-author';
|
|
$response = $this->parse(['url' => $url]);
|
|
|
|
$body = $response->getContent();
|
|
$this->assertEquals(200, $response->getStatusCode());
|
|
$data = json_decode($body);
|
|
|
|
$this->assertEquals('http://author.example.com/about', $data->data->author->url);
|
|
$this->assertEquals('Author', $data->data->author->name);
|
|
$this->assertEquals('http://author.example.com/photo.jpg', $data->data->author->photo);
|
|
}
|
|
|
|
public function testHEntryHasHCardAuthor()
|
|
{
|
|
$url = 'http://author.example.com/h-entry-has-h-card-author';
|
|
$response = $this->parse(['url' => $url]);
|
|
|
|
$body = $response->getContent();
|
|
$this->assertEquals(200, $response->getStatusCode());
|
|
$data = json_decode($body);
|
|
|
|
$this->assertEquals('http://author.example.com/about', $data->data->author->url);
|
|
$this->assertEquals('Author', $data->data->author->name);
|
|
$this->assertEquals('http://author.example.com/photo.jpg', $data->data->author->photo);
|
|
}
|
|
|
|
public function testPageIsHCard()
|
|
{
|
|
$url = 'http://author.example.com/about';
|
|
$response = $this->parse(['url' => $url]);
|
|
|
|
$body = $response->getContent();
|
|
$this->assertEquals(200, $response->getStatusCode());
|
|
$data = json_decode($body);
|
|
|
|
$this->assertEquals('card', $data->data->type);
|
|
$this->assertEquals('http://author.example.com/about', $data->data->url);
|
|
$this->assertEquals('Author Full Name', $data->data->name);
|
|
$this->assertEquals('http://author.example.com/photo.jpg', $data->data->photo);
|
|
}
|
|
|
|
public function testPageIsHCardWithNoURL()
|
|
{
|
|
$url = 'http://author.example.com/about-no-url';
|
|
$response = $this->parse(['url' => $url]);
|
|
|
|
$body = $response->getContent();
|
|
$this->assertEquals(200, $response->getStatusCode());
|
|
$data = json_decode($body);
|
|
|
|
$this->assertEquals('card', $data->data->type);
|
|
$this->assertEquals('Author Full Name', $data->data->name);
|
|
$this->assertEquals($url, $data->data->url);
|
|
$this->assertEquals('http://author.example.com/photo.jpg', $data->data->photo);
|
|
}
|
|
|
|
public function testHEntryAuthorIs0()
|
|
{
|
|
$url = 'http://author.example.com/author-name-is-0';
|
|
$response = $this->parse(['url' => $url]);
|
|
|
|
$body = $response->getContent();
|
|
$this->assertEquals(200, $response->getStatusCode());
|
|
$data = json_decode($body);
|
|
|
|
$this->assertEquals('card', $data->data->type);
|
|
$this->assertEquals('http://author.example.com/photo.jpg', $data->data->photo);
|
|
$this->assertEquals('0', $data->data->name);
|
|
}
|
|
|
|
/*
|
|
public function testHFeedHasHCardAuthor() {
|
|
$url = 'http://author.example.com/h-feed-has-h-card-author';
|
|
$response = $this->parse(['url' => $url]);
|
|
|
|
$body = $response->getContent();
|
|
print_r($body);
|
|
$this->assertEquals(200, $response->getStatusCode());
|
|
$data = json_decode($body);
|
|
$this->assertEquals('http://author.example.com/about', $data->data->author->url);
|
|
$this->assertEquals('Author', $data->data->author->name);
|
|
$this->assertEquals('http://author.example.com/photo.jpg', $data->data->author->photo);
|
|
}
|
|
*/
|
|
|
|
}
|