]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - tests/ActivityParseTests.php
Remove CSRF protection from username/password login and from OpenID login.
[quix0rs-gnu-social.git] / tests / ActivityParseTests.php
index fec8829ebad4ca60080b7e7a738aacfdcc8b73e5..378478d741d1cd3ce205a206ab8aaa7df0f6923b 100644 (file)
@@ -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($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()
@@ -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->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));
 
@@ -305,6 +317,71 @@ class ActivityParseTests extends PHPUnit_Framework_TestCase
 
     }
 
+    public function testAtomContent()
+    {
+        $tests = array(array("<content>Some regular plain text.</content>",
+                             "Some regular plain text."),
+                       array("<content>&lt;b&gt;this is not HTML&lt;/b&gt;</content>",
+                             "&lt;b&gt;this is not HTML&lt;/b&gt;"),
+                       array("<content type='html'>Some regular plain HTML.</content>",
+                             "Some regular plain HTML."),
+                       array("<content type='html'>&lt;b&gt;this is too HTML&lt;/b&gt;</content>",
+                             "<b>this is too HTML</b>"),
+                       array("<content type='html'>&amp;lt;b&amp;gt;but this is not HTML!&amp;lt;/b&amp;gt;</content>",
+                             "&lt;b&gt;but this is not HTML!&lt;/b&gt;"),
+                       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'>&lt;b&gt;This is not some XHTML!&lt;/b&gt;</div></content>",
+                             "&lt;b&gt;This is not some XHTML!&lt;/b&gt;"),
+                       array("<content type='xhtml'><div xmlns='http://www.w3.org/1999/xhtml'>&amp;lt;b&amp;gt;This is not some XHTML either!&amp;lt;/b&amp;gt;</div></content>",
+                             "&amp;lt;b&amp;gt;This is not some XHTML either!&amp;lt;/b&amp;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 &lt;b&gt;exciting bold HTML&lt;/b&gt;</content:encoded>",
+                             "Some <b>exciting bold HTML</b>"),
+                       array("<content:encoded>Some &amp;lt;b&amp;gt;escaped non-HTML.&amp;lt;/b&amp;gt;</content:encoded>",
+                             "Some &lt;b&gt;escaped non-HTML.&lt;/b&gt;"),
+                       array("<description>Some plain text.</description>",
+                             "Some plain text."),
+                       array("<description>Some &lt;b&gt;non-HTML text&lt;/b&gt;</description>",
+                             "Some &lt;b&gt;non-HTML text&lt;/b&gt;"),
+                       array("<description>Some &amp;lt;b&amp;gt;double-escaped text&amp;lt;/b&amp;gt;</description>",
+                             "Some &amp;lt;b&amp;gt;double-escaped text&amp;lt;/b&amp;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