documentElement);
$this->assertFalse(empty($act));
$this->assertEquals(1243860840, $act->time);
$this->assertEquals(ActivityVerb::POST, $act->verb);
$this->assertFalse(empty($act->objects[0]));
$this->assertEquals('Punctuation Changeset', $act->objects[0]->title);
$this->assertEquals('http://versioncentral.example.org/activity/changeset', $act->objects[0]->type);
$this->assertEquals('Fixing punctuation because it makes it more readable.', $act->objects[0]->summary);
$this->assertEquals('tag:versioncentral.example.org,2009:/change/1643245', $act->objects[0]->id);
}
public function testExample3()
{
global $_example3;
$dom = DOMDocument::loadXML($_example3);
$feed = $dom->documentElement;
$entries = $feed->getElementsByTagName('entry');
$entry = $entries->item(0);
$act = new Activity($entry, $feed);
$this->assertFalse(empty($act));
$this->assertEquals(1071340202, $act->time);
$this->assertEquals('http://example.org/2003/12/13/atom03.html', $act->link);
$this->assertEquals($act->verb, ActivityVerb::POST);
$this->assertFalse(empty($act->actor));
$this->assertEquals(ActivityObject::PERSON, $act->actor->type);
$this->assertEquals('John Doe', $act->actor->title);
$this->assertEquals('mailto:johndoe@example.com', $act->actor->id);
$this->assertFalse(empty($act->objects[0]));
$this->assertEquals(ActivityObject::NOTE, $act->objects[0]->type);
$this->assertEquals('urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a', $act->objects[0]->id);
$this->assertEquals('Atom-Powered Robots Run Amok', $act->objects[0]->title);
$this->assertEquals('Some text.', $act->objects[0]->summary);
$this->assertEquals('http://example.org/2003/12/13/atom03.html', $act->objects[0]->link);
$this->assertFalse(empty($act->context));
$this->assertTrue(empty($act->target));
$this->assertEquals($act->entry, $entry);
$this->assertEquals($act->feed, $feed);
}
public function testExample4()
{
global $_example4;
$dom = DOMDocument::loadXML($_example4);
$entry = $dom->documentElement;
$act = new Activity($entry);
$this->assertFalse(empty($act));
$this->assertEquals(1266547958, $act->time);
$this->assertEquals('http://example.net/notice/14', $act->link);
$this->assertFalse(empty($act->context));
$this->assertEquals('http://example.net/notice/12', $act->context->replyToID);
$this->assertEquals('http://example.net/notice/12', $act->context->replyToUrl);
$this->assertEquals('http://example.net/conversation/11', $act->context->conversation);
$this->assertEquals(array('http://example.net/user/1'), $act->context->attention);
$this->assertFalse(empty($act->objects[0]));
$this->assertEquals($act->objects[0]->content,
'@evan now is the time for all good men to come to the aid of their country. #thetime');
$this->assertFalse(empty($act->actor));
}
public function testExample5()
{
global $_example5;
$dom = DOMDocument::loadXML($_example5);
$feed = $dom->documentElement;
// @todo Test feed elements
$entries = $feed->getElementsByTagName('entry');
$entry = $entries->item(0);
$act = new Activity($entry, $feed);
// Post
$this->assertEquals($act->verb, ActivityVerb::POST);
$this->assertFalse(empty($act->context));
// Actor w/Portable Contacts stuff
$this->assertFalse(empty($act->actor));
$this->assertEquals($act->actor->type, ActivityObject::PERSON);
$this->assertEquals($act->actor->title, 'Test User');
$this->assertEquals($act->actor->id, 'http://example.net/mysite/user/3');
$this->assertEquals($act->actor->link, 'http://example.net/mysite/testuser');
$avatars = $act->actor->avatarLinks;
$this->assertEquals(
$avatars[0]->url,
'http://example.net/mysite/avatar/3-96-20100224004207.jpeg'
);
$this->assertEquals($act->actor->displayName, 'Test User');
$poco = $act->actor->poco;
$this->assertEquals($poco->preferredUsername, 'testuser');
$this->assertEquals($poco->address->formatted, 'San Francisco, CA');
$this->assertEquals($poco->urls[0]->type, 'homepage');
$this->assertEquals($poco->urls[0]->value, 'http://example.com/blog.html');
$this->assertEquals($poco->urls[0]->primary, 'true');
$this->assertEquals($act->actor->geopoint, '37.7749295 -122.4194155');
}
public function testExample6()
{
global $_example6;
$dom = DOMDocument::loadXML($_example6);
$rss = $dom->documentElement;
$channels = $dom->getElementsByTagName('channel');
$channel = $channels->item(0);
$items = $channel->getElementsByTagName('item');
$item = $items->item(0);
$act = new Activity($item, $channel);
$this->assertEquals($act->verb, ActivityVerb::POST);
$this->assertEquals($act->id, 'http://en.blog.wordpress.com/?p=3857');
$this->assertEquals($act->link, 'http://en.blog.wordpress.com/2010/03/03/rub-a-dub-dub-in-the-pubsubhubbub/');
$this->assertEquals($act->title, 'Rub-a-Dub-Dub in the PubSubHubbub');
$this->assertEquals($act->time, 1267634892);
$actor = $act->actor;
$this->assertFalse(empty($actor));
$this->assertEquals($actor->title, "Joseph Scott");
}
public function testExample7()
{
global $_example7;
$dom = DOMDocument::loadXML($_example7);
$rss = $dom->documentElement;
$channels = $dom->getElementsByTagName('channel');
$channel = $channels->item(0);
$items = $channel->getElementsByTagName('item');
$item = $items->item(0);
$act = new Activity($item, $channel);
$this->assertEquals(ActivityVerb::POST, $act->verb);
$this->assertEquals('http://evanpro.posterous.com/checking-out-captain-bones', $act->link);
$this->assertEquals('http://evanpro.posterous.com/checking-out-captain-bones', $act->id);
$this->assertEquals('Checking out captain bones', $act->title);
$this->assertEquals(1269095551, $act->time);
$actor = $act->actor;
$this->assertEquals(ActivityObject::PERSON, $actor->type);
$this->assertEquals('http://posterous.com/people/3sDslhaepotz', $actor->id);
$this->assertEquals('Evan Prodromou', $actor->title);
$this->assertNull($actor->summary);
$this->assertNull($actor->content);
$this->assertEquals('http://posterous.com/people/3sDslhaepotz', $actor->link);
$this->assertNull($actor->source);
$this->assertTrue(is_array($actor->avatarLinks));
$this->assertEquals(1, count($actor->avatarLinks));
$this->assertEquals('http://files.posterous.com/user_profile_pics/480326/2009-08-05-142447.jpg',
$actor->avatarLinks[0]->url);
$this->assertNotNull($actor->poco);
$this->assertEquals('evanpro', $actor->poco->preferredUsername);
$this->assertEquals('Evan Prodromou', $actor->poco->displayName);
$this->assertNull($actor->poco->note);
$this->assertNull($actor->poco->address);
$this->assertEquals(0, count($actor->poco->urls));
}
// Media test - cliqset
public function testExample8()
{
global $_example8;
$dom = DOMDocument::loadXML($_example8);
$feed = $dom->documentElement;
$entries = $feed->getElementsByTagName('entry');
$entry = $entries->item(0);
$act = new Activity($entry, $feed);
$this->assertFalse(empty($act));
$this->assertEquals($act->time, 1269221753);
$this->assertEquals($act->verb, ActivityVerb::POST);
$this->assertEquals($act->summary, 'zcopley posted 5 photos on Flickr');
$this->assertFalse(empty($act->objects));
$this->assertEquals(sizeof($act->objects), 5);
$this->assertEquals($act->objects[0]->type, ActivityObject::PHOTO);
$this->assertEquals($act->objects[0]->title, 'IMG_1368');
$this->assertNull($act->objects[0]->description);
$this->assertEquals(
$act->objects[0]->thumbnail,
'http://media.cliqset.com/6f6fbee9d7dfbffc73b6ef626275eb5f_thumb.jpg'
);
$this->assertEquals(
$act->objects[0]->link,
'http://www.flickr.com/photos/zcopley/4452933806/'
);
$this->assertEquals($act->objects[1]->type, ActivityObject::PHOTO);
$this->assertEquals($act->objects[1]->title, 'IMG_1365');
$this->assertNull($act->objects[1]->description);
$this->assertEquals(
$act->objects[1]->thumbnail,
'http://media.cliqset.com/b8f3932cd0bba1b27f7c8b3ef986915e_thumb.jpg'
);
$this->assertEquals(
$act->objects[1]->link,
'http://www.flickr.com/photos/zcopley/4442630390/'
);
$this->assertEquals($act->objects[2]->type, ActivityObject::PHOTO);
$this->assertEquals($act->objects[2]->title, 'Classic');
$this->assertEquals(
$act->objects[2]->description,
'-Powered by pikchur.com/n0u'
);
$this->assertEquals(
$act->objects[2]->thumbnail,
'http://media.cliqset.com/fc54c15f850b7a9a8efa644087a48c91_thumb.jpg'
);
$this->assertEquals(
$act->objects[2]->link,
'http://www.flickr.com/photos/zcopley/4430754103/'
);
$this->assertEquals($act->objects[3]->type, ActivityObject::PHOTO);
$this->assertEquals($act->objects[3]->title, 'IMG_1363');
$this->assertNull($act->objects[3]->description);
$this->assertEquals(
$act->objects[3]->thumbnail,
'http://media.cliqset.com/4b1d307c9217e2114391a8b229d612cb_thumb.jpg'
);
$this->assertEquals(
$act->objects[3]->link,
'http://www.flickr.com/photos/zcopley/4416969717/'
);
$this->assertEquals($act->objects[4]->type, ActivityObject::PHOTO);
$this->assertEquals($act->objects[4]->title, 'IMG_1361');
$this->assertNull($act->objects[4]->description);
$this->assertEquals(
$act->objects[4]->thumbnail,
'http://media.cliqset.com/23d9b4b96b286e0347d36052f22f6e60_thumb.jpg'
);
$this->assertEquals(
$act->objects[4]->link,
'http://www.flickr.com/photos/zcopley/4417734232/'
);
}
}
$_example1 = <<
Today we’ve turned on PuSH support for the more than 10.5 million blogs on WordPress.com. There’s nothing to configure, it’s working right now behind the scenes to help others keep up to date with your posts.
For those using the WordPress.org software we are releasing a new PuSH plugin: PuSHPress. This plugin differs from the current PuSH related plugins by including a built-in hub.
For more PuSH related reading check out the PubSubHubbub project site and Google Group. And if you really want to geek out there’s always the PubSubHubbub Spec
Bones!
]]>