| 
								
							 | 
							
								<?php
							 | 
						
						
						
							| 
								
							 | 
							
								use Symfony\Component\HttpFoundation\Request;
							 | 
						
						
						
							| 
								
							 | 
							
								use Symfony\Component\HttpFoundation\Response;
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								class AuthorTest extends PHPUnit_Framework_TestCase {
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								  private $http;
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								  public function setUp() {
							 | 
						
						
						
							| 
								
							 | 
							
								    $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->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);
							 | 
						
						
						
							| 
								
							 | 
							
								  }
							 | 
						
						
						
							| 
								
							 | 
							
								  */
							 | 
						
						
						
							| 
								
							 | 
							
								
							 | 
						
						
						
							| 
								
							 | 
							
								}
							 |