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 testExample2()
    {
        global $_example2;
        $dom = DOMDocument::loadXML($_example2);
        $act = new Activity($dom->documentElement);
        $this->assertFalse(empty($act));
        // Did we handle  Geraldine posted a Photo on PhotoPanic ", trim($act->content));
    }
    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/'
        );
    }
    public function testAtomContent()
    {
        $tests = array(array("
", trim($act->content));
    }
    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/'
        );
    }
    public function testAtomContent()
    {
        $tests = array(array("
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!
]]>