|
<?php
|
|
use Symfony\Component\HttpFoundation\Request;
|
|
use Symfony\Component\HttpFoundation\Response;
|
|
|
|
class FacebookTest extends PHPUnit_Framework_TestCase {
|
|
|
|
private $http;
|
|
|
|
public function setUp() {
|
|
$this->client = new Parse();
|
|
$this->client->mc = null;
|
|
}
|
|
|
|
private function parse($params) {
|
|
$request = new Request($params);
|
|
$response = new Response();
|
|
|
|
$result = $this->client->parse($request, $response);
|
|
$body = $result->getContent();
|
|
$this->assertEquals(200, $result->getStatusCode());
|
|
return json_decode($body, true);
|
|
}
|
|
|
|
private function loadFbObject($id) {
|
|
return file_get_contents(dirname(__FILE__).'/data/graph.facebook.com/'.$id.'.json');
|
|
}
|
|
|
|
public function testFacebookEventWithHCard() {
|
|
$url = 'https://www.facebook.com/events/446197069049722/';
|
|
$json = $this->loadFbObject('446197069049722');
|
|
|
|
$data = $this->parse(['url' => $url, 'body' => $json]);
|
|
|
|
$this->assertArrayHasKey('code', $data);
|
|
$this->assertEquals('facebook', $data['source-format']);
|
|
|
|
$this->assertEquals('event', $data['data']['type']);
|
|
$this->assertEquals('event', $data['data']['post-type']);
|
|
$this->assertEquals('IndieWeb Summit', $data['data']['name']);
|
|
$this->assertEquals('2017-06-24T09:00:00-0700', $data['data']['start']);
|
|
$this->assertEquals('2017-06-25T18:00:00-0700', $data['data']['end']);
|
|
$this->assertContains('The seventh annual gathering for independent web creators of all kinds,', $data['data']['summary']);
|
|
$this->assertEquals('https://facebook.com/332204056925945', $data['data']['location']);
|
|
|
|
$card = $data['data']['refs'][0];
|
|
$this->assertEquals('card', $card['type']);
|
|
$this->assertEquals('https://facebook.com/332204056925945', $card['url']);
|
|
$this->assertEquals('Mozilla PDX', $card['name']);
|
|
$this->assertEquals('97209', $card['postal-code']);
|
|
$this->assertEquals('Portland', $card['locality']);
|
|
$this->assertEquals('OR', $card['region']);
|
|
$this->assertEquals('1120 NW Couch St, Ste 320', $card['street-address']);
|
|
$this->assertEquals('United States', $card['country']);
|
|
$this->assertEquals('45.5233192', $card['latitude']);
|
|
$this->assertEquals('-122.6824722', $card['longitude']);
|
|
}
|
|
|
|
public function testFacebookEvent() {
|
|
$url = 'https://www.facebook.com/events/1596554663924436/';
|
|
$json = $this->loadFbObject('1596554663924436');
|
|
|
|
$data = $this->parse(['url' => $url, 'body' => $json]);
|
|
|
|
$this->assertArrayHasKey('code', $data);
|
|
$this->assertEquals('facebook', $data['source-format']);
|
|
|
|
$this->assertEquals('event', $data['data']['type']);
|
|
$this->assertEquals('event', $data['data']['post-type']);
|
|
$this->assertEquals('Homebrew Website Club', $data['data']['name']);
|
|
$this->assertEquals('2015-04-22T19:00:00-0400', $data['data']['start']);
|
|
$this->assertContains('Are you building your own website? Indie reader?', $data['data']['summary']);
|
|
$this->assertEquals('Charging Bull - WeeWork - 25 Broadway, New York, NY 10004', $data['data']['location']);
|
|
}
|
|
|
|
}
|