$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($act->objects[0]->title, 'Punctuation Changeset');
- $this->assertEquals($act->objects[0]->type, 'http://versioncentral.example.org/activity/changeset');
- $this->assertEquals($act->objects[0]->summary, 'Fixing punctuation because it makes it more readable.');
- $this->assertEquals($act->objects[0]->id, 'tag:versioncentral.example.org,2009:/change/1643245');
+ $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 <content type="html"> correctly with a typical payload?
+ $this->assertEquals("<p>Geraldine posted a Photo on PhotoPanic</p>\n " .
+ "<img src=\"/geraldine/photo1.jpg\">", trim($act->content));
}
public function testExample3()
$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->objects[0]));
- $this->assertEquals($act->objects[0]->type, ActivityObject::NOTE);
- $this->assertEquals($act->objects[0]->id, 'urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a');
- $this->assertEquals($act->objects[0]->title, 'Atom-Powered Robots Run Amok');
- $this->assertEquals($act->objects[0]->summary, 'Some text.');
- $this->assertEquals($act->objects[0]->link, 'http://example.org/2003/12/13/atom03.html');
+ $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));
}
+ public function testAtomContent()
+ {
+ $tests = array(array("<content>Some regular plain text.</content>",
+ "Some regular plain text."),
+ array("<content><b>this is not HTML</b></content>",
+ "<b>this is not HTML</b>"),
+ array("<content type='html'>Some regular plain HTML.</content>",
+ "Some regular plain HTML."),
+ array("<content type='html'><b>this is too HTML</b></content>",
+ "<b>this is too HTML</b>"),
+ array("<content type='html'>&lt;b&gt;but this is not HTML!&lt;/b&gt;</content>",
+ "<b>but this is not HTML!</b>"),
+ array("<content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>Some regular plain XHTML.</div></content>",
+ "Some regular plain XHTML."),
+ array("<content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'><b>This is some XHTML!</b></div></content>",
+ "<b>This is some XHTML!</b>"),
+ array("<content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'><b>This is not some XHTML!</b></div></content>",
+ "<b>This is not some XHTML!</b>"),
+ array("<content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>&lt;b&gt;This is not some XHTML either!&lt;/b&gt;</div></content>",
+ "&lt;b&gt;This is not some XHTML either!&lt;/b&gt;"));
+ foreach ($tests as $data) {
+ list($source, $output) = $data;
+ $xml = "<entry xmlns='http://www.w3.org/2005/Atom'>" .
+ "<id>http://example.com/fakeid</id>" .
+ "<author><name>Test</name></author>" .
+ "<title>Atom content tests</title>" .
+ $source .
+ "</entry>";
+ $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("<content:encoded>Some regular plain HTML.</content:encoded>",
+ "Some regular plain HTML."),
+ array("<content:encoded>Some <b>exciting bold HTML</b></content:encoded>",
+ "Some <b>exciting bold HTML</b>"),
+ array("<content:encoded>Some &lt;b&gt;escaped non-HTML.&lt;/b&gt;</content:encoded>",
+ "Some <b>escaped non-HTML.</b>"),
+ array("<description>Some plain text.</description>",
+ "Some plain text."),
+ array("<description>Some <b>non-HTML text</b></description>",
+ "Some <b>non-HTML text</b>"),
+ array("<description>Some &lt;b&gt;double-escaped text&lt;/b&gt;</description>",
+ "Some &lt;b&gt;double-escaped text&lt;/b&gt;"));
+ foreach ($tests as $data) {
+ list($source, $output) = $data;
+ $xml = "<item xmlns:content='http://purl.org/rss/1.0/modules/content/'>" .
+ "<guid>http://example.com/fakeid</guid>" .
+ "<title>RSS content tests</title>" .
+ $source .
+ "</item>";
+ $dom = DOMDocument::loadXML($xml);
+ $act = new Activity($dom->documentElement);
+
+ $this->assertFalse(empty($act));
+ $this->assertEquals($output, trim($act->content));
+ }
+ }
+
}
$_example1 = <<<EXAMPLE1