X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=tests%2FActivityParseTests.php;h=378478d741d1cd3ce205a206ab8aaa7df0f6923b;hb=46f435a74294bef7cc19deb354059d4f3cf626ce;hp=5de97d2e2ed2117e157fdc16ab93fd97381a7ad1;hpb=daea98878692cadc9406be16fe2e15a419add3c4;p=quix0rs-gnu-social.git
diff --git a/tests/ActivityParseTests.php b/tests/ActivityParseTests.php
index 5de97d2e2e..378478d741 100644
--- a/tests/ActivityParseTests.php
+++ b/tests/ActivityParseTests.php
@@ -22,14 +22,26 @@ class ActivityParseTests extends PHPUnit_Framework_TestCase
$this->assertFalse(empty($act));
- $this->assertEquals($act->time, 1243860840);
- $this->assertEquals($act->verb, ActivityVerb::POST);
+ $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);
+ }
- $this->assertFalse(empty($act->object));
- $this->assertEquals($act->object->title, 'Punctuation Changeset');
- $this->assertEquals($act->object->type, 'http://versioncentral.example.org/activity/changeset');
- $this->assertEquals($act->object->summary, 'Fixing punctuation because it makes it more readable.');
- $this->assertEquals($act->object->id, 'tag:versioncentral.example.org,2009:/change/1643245');
+ public function testExample2()
+ {
+ global $_example2;
+ $dom = DOMDocument::loadXML($_example2);
+ $act = new Activity($dom->documentElement);
+
+ $this->assertFalse(empty($act));
+ // Did we handle correctly with a typical payload?
+ $this->assertEquals("Geraldine posted a Photo on PhotoPanic
\n " .
+ " ", trim($act->content));
}
public function testExample3()
@@ -46,22 +58,22 @@ class ActivityParseTests extends PHPUnit_Framework_TestCase
$act = new Activity($entry, $feed);
$this->assertFalse(empty($act));
- $this->assertEquals($act->time, 1071340202);
- $this->assertEquals($act->link, 'http://example.org/2003/12/13/atom03.html');
+ $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($act->actor->type, ActivityObject::PERSON);
- $this->assertEquals($act->actor->title, 'John Doe');
- $this->assertEquals($act->actor->id, 'mailto:johndoe@example.com');
+ $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->object));
- $this->assertEquals($act->object->type, ActivityObject::NOTE);
- $this->assertEquals($act->object->id, 'urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a');
- $this->assertEquals($act->object->title, 'Atom-Powered Robots Run Amok');
- $this->assertEquals($act->object->summary, 'Some text.');
- $this->assertEquals($act->object->link, 'http://example.org/2003/12/13/atom03.html');
+ $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));
@@ -90,8 +102,8 @@ class ActivityParseTests extends PHPUnit_Framework_TestCase
$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->object));
- $this->assertEquals($act->object->content,
+ $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));
@@ -121,10 +133,14 @@ class ActivityParseTests extends PHPUnit_Framework_TestCase
$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(
- $act->actor->avatar,
- 'http://example.net/mysite/avatar/3-96-20100224004207.jpeg'
+ $avatars[0]->url,
+ 'http://example.net/mysite/avatar/3-96-20100224004207.jpeg'
);
+
$this->assertEquals($act->actor->displayName, 'Test User');
$poco = $act->actor->poco;
@@ -133,6 +149,237 @@ class ActivityParseTests extends PHPUnit_Framework_TestCase
$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("Some regular plain text. ",
+ "Some regular plain text."),
+ array("<b>this is not HTML</b> ",
+ "<b>this is not HTML</b>"),
+ array("Some regular plain HTML. ",
+ "Some regular plain HTML."),
+ array("<b>this is too HTML</b> ",
+ "this is too HTML "),
+ array("<b>but this is not HTML!</b> ",
+ "<b>but this is not HTML!</b>"),
+ array("Some regular plain XHTML.
",
+ "Some regular plain XHTML."),
+ array("This is some XHTML!
",
+ "This is some XHTML! "),
+ array("<b>This is not some XHTML!</b>
",
+ "<b>This is not some XHTML!</b>"),
+ array("<b>This is not some XHTML either!</b>
",
+ "<b>This is not some XHTML either!</b>"));
+ foreach ($tests as $data) {
+ list($source, $output) = $data;
+ $xml = "" .
+ "http://example.com/fakeid " .
+ "Test " .
+ "Atom content tests " .
+ $source .
+ " ";
+ $dom = DOMDocument::loadXML($xml);
+ $act = new Activity($dom->documentElement);
+
+ $this->assertFalse(empty($act));
+ $this->assertEquals($output, trim($act->content));
+ }
+ }
+
+ public function testRssContent()
+ {
+ $tests = array(array("Some regular plain HTML. ",
+ "Some regular plain HTML."),
+ array("Some <b>exciting bold HTML</b> ",
+ "Some exciting bold HTML "),
+ array("Some <b>escaped non-HTML.</b> ",
+ "Some <b>escaped non-HTML.</b>"),
+ array("Some plain text. ",
+ "Some plain text."),
+ array("Some <b>non-HTML text</b> ",
+ "Some <b>non-HTML text</b>"),
+ array("Some <b>double-escaped text</b> ",
+ "Some <b>double-escaped text</b>"));
+ foreach ($tests as $data) {
+ list($source, $output) = $data;
+ $xml = "- " .
+ "
http://example.com/fakeid " .
+ "RSS content tests " .
+ $source .
+ " ";
+ $dom = DOMDocument::loadXML($xml);
+ $act = new Activity($dom->documentElement);
+
+ $this->assertFalse(empty($act));
+ $this->assertEquals($output, trim($act->content));
+ }
}
}
@@ -324,3 +571,224 @@ $_example5 = <<
EXAMPLE5;
+
+$_example6 = <<
+
+
+
+ WordPress.com News
+
+ http://en.blog.wordpress.com
+ The latest news on WordPress.com and the WordPress community.
+ Thu, 18 Mar 2010 23:25:35 +0000
+
+ http://wordpress.com/
+ en
+ hourly
+ 1
+
+
+ http://www.gravatar.com/blavatar/e6392390e3bcfadff3671c5a5653d95b?s=96&d=http://s2.wp.com/i/buttonw-com.png
+ WordPress.com News
+ http://en.blog.wordpress.com
+
+
+
+
+ -
+
Rub-a-Dub-Dub in the PubSubHubbub
+ http://en.blog.wordpress.com/2010/03/03/rub-a-dub-dub-in-the-pubsubhubbub/
+ http://en.blog.wordpress.com/2010/03/03/rub-a-dub-dub-in-the-pubsubhubbub/#comments
+ Wed, 03 Mar 2010 16:48:12 +0000
+ Joseph Scott
+
+
+
+
+
+
+ http://en.blog.wordpress.com/?p=3857
+ ]]>
+ From the tongue twisting name department we welcome PubSubHubbub , or as some people have shortened it to: PuSH. Like rssCloud , PuSH is a way for services that subscribe to updates from your blog (think Google Reader, Bloglines or Netvibes) to get updates even faster. In a nutshell, instead of having to periodically ask your blog if there are any updates they can now register to automatically receive updates each time you publish new content. In most cases these updates are sent out within a second or two of when you hit the publish button.
+ 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
+ ]]>
+ http://en.blog.wordpress.com/2010/03/03/rub-a-dub-dub-in-the-pubsubhubbub/feed/
+
+ 96
+
+
+ josephscott
+
+
+
+
+EXAMPLE6;
+
+$_example7 = <<
+
+
+ evanpro's posterous
+ http://evanpro.posterous.com
+ Most recent posts at evanpro's posterous
+ posterous.com
+
+
+
+ -
+
Sat, 20 Mar 2010 07:32:31 -0700
+ Checking out captain bones
+ http://evanpro.posterous.com/checking-out-captain-bones
+ http://evanpro.posterous.com/checking-out-captain-bones
+
+
+ Bones!
+
+
+
+ Permalink
+
+ | Leave a comment »
+
+
]]>
+
+
+ http://files.posterous.com/user_profile_pics/480326/2009-08-05-142447.jpg
+ http://posterous.com/people/3sDslhaepotz
+ Evan
+ Prodromou
+ evanpro
+ Evan Prodromou
+
+
+
+
+EXAMPLE7;
+
+$_example8 = <<
+
+
+ Activity Stream for: zcopley
+ http://cliqset.com/feed/atom?uid=zcopley
+
+ 0
+ http://activitystrea.ms/schema/1.0/post
+ 2010-03-22T01:35:53.000Z
+
+ flickr
+ http://flickr.com
+ http://cliqset-services.s3.amazonaws.com/flickr.png
+
+
+ http://activitystrea.ms/schema/1.0/photo
+ IMG_1368
+
+
+
+
+ http://activitystrea.ms/schema/1.0/photo
+ IMG_1365
+
+
+
+
+ http://activitystrea.ms/schema/1.0/photo
+ Classic
+
+
+ -Powered by pikchur.com/n0u
+
+
+ http://activitystrea.ms/schema/1.0/photo
+ IMG_1363
+
+
+
+
+ http://activitystrea.ms/schema/1.0/photo
+ IMG_1361
+
+
+
+ zcopley posted some photos on Flickr
+ zcopley posted 5 photos on Flickr
+
+ 2010-03-22T20:46:42.778Z
+ tag:cliqset.com,2010-03-22:/user/zcopley/SVgAZubGhtAnSAee
+
+
+ zcopley
+ http://cliqset.com/user/zcopley
+
+
+ http://activitystrea.ms/schema/1.0/person
+ zcopley
+
+ Zach
+ Copley
+
+
+
+
+
+
+
+EXAMPLE8;
+
+$_example9 = <<
+
+
+
+ Google Buzz
+ 2010-03-22T01:55:53.596Z
+ tag:google.com,2009:buzz-feed/public/posted/117848251937215158042
+ Google - Google Buzz
+
+ Buzz by Zach Copley from Flickr
+ IMG_1366
+ 2010-03-18T04:29:23.000Z
+ 2010-03-18T05:14:03.325Z
+ tag:google.com,2009:buzz/z12zwdhxowq2d13q204cjr04kzu0cns5gh0
+
+
+ Zach Copley
+ http://www.google.com/profiles/zcopley
+
+ <div>IMG_1366</div>
+
+
+ IMG_1366
+
+
+
+
+ IMG_1365
+
+
+ http://activitystrea.ms/schema/1.0/post
+
+ http://activitystrea.ms/schema/1.0/photo
+ tag:google.com,2009:buzz/z12zwdhxowq2d13q204cjr04kzu0cns5gh0
+ Buzz by Zach Copley from Flickr
+ <div>IMG_1366</div>
+
+
+
+
+ 0
+
+
+EXAMPLE9;