add first unit tests for class inbox
This commit is contained in:
parent
8db9be5c2e
commit
7fa58cf26c
2 changed files with 74 additions and 1 deletions
|
@ -431,7 +431,11 @@ class Inbox {
|
||||||
*
|
*
|
||||||
* @return array Comment data suitable for creating a comment.
|
* @return array Comment data suitable for creating a comment.
|
||||||
*/
|
*/
|
||||||
private static function convert_object_to_comment_data( $object ) {
|
public static function convert_object_to_comment_data( $object ) {
|
||||||
|
if ( ! isset( $object['object'] ) ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// check if Activity is public or not
|
// check if Activity is public or not
|
||||||
if ( ! self::is_activity_public( $object ) ) {
|
if ( ! self::is_activity_public( $object ) ) {
|
||||||
// @todo maybe send email
|
// @todo maybe send email
|
||||||
|
|
69
tests/test-class-inbox.php
Normal file
69
tests/test-class-inbox.php
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
<?php
|
||||||
|
class Test_Inbox extends WP_UnitTestCase {
|
||||||
|
|
||||||
|
var $post_permalink;
|
||||||
|
var $user_url;
|
||||||
|
|
||||||
|
public function setUp(): void {
|
||||||
|
$authordata = \get_userdata( 1 );
|
||||||
|
$this->user_url = $authordata->user_url;
|
||||||
|
|
||||||
|
$post = \wp_insert_post(
|
||||||
|
array(
|
||||||
|
'post_author' => 1,
|
||||||
|
'post_content' => 'test',
|
||||||
|
)
|
||||||
|
);
|
||||||
|
$this->post_permalink = \get_permalink( $post );
|
||||||
|
|
||||||
|
\add_filter( 'pre_get_remote_metadata_by_actor', array( '\Test_Inbox', 'get_remote_metadata_by_actor' ), 10, 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function get_remote_metadata_by_actor( $value, $actor ) {
|
||||||
|
return array(
|
||||||
|
"name" => "Example User",
|
||||||
|
"icon" => array(
|
||||||
|
"url" => "https://example.com/icon",
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test_convert_object_to_comment_data_basic() {
|
||||||
|
$inbox = new \Activitypub\Rest\Inbox();
|
||||||
|
$object = array(
|
||||||
|
"actor" => $this->user_url,
|
||||||
|
"to" => [ $this->user_url ],
|
||||||
|
"cc" => [ "https://www.w3.org/ns/activitystreams#Public" ],
|
||||||
|
"object" => array(
|
||||||
|
"id" => "123",
|
||||||
|
"url" => "https://example.com/example",
|
||||||
|
"inReplyTo" => $this->post_permalink,
|
||||||
|
"content" => "example",
|
||||||
|
),
|
||||||
|
);
|
||||||
|
$converted = $inbox->convert_object_to_comment_data($object);
|
||||||
|
|
||||||
|
$this->assertGreaterThan(1, $converted["comment_post_ID"]);
|
||||||
|
$this->assertEquals($converted["comment_author"], "Example User");
|
||||||
|
$this->assertEquals($converted["comment_author_url"], "http://example.org");
|
||||||
|
$this->assertEquals($converted["comment_content"], "example");
|
||||||
|
$this->assertEquals($converted["comment_type"], "");
|
||||||
|
$this->assertEquals($converted["comment_author_email"], "");
|
||||||
|
$this->assertEquals($converted["comment_parent"], 0);
|
||||||
|
$this->assertArrayHasKey("comment_meta", $converted);
|
||||||
|
$this->assertEquals($converted["comment_meta"]["source_id"], "http://123");
|
||||||
|
$this->assertEquals($converted["comment_meta"]["source_url"], "https://example.com/example");
|
||||||
|
$this->assertEquals($converted["comment_meta"]["avatar_url"], "https://example.com/icon");
|
||||||
|
$this->assertEquals($converted["comment_meta"]["protocol"], "activitypub");
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test_convert_object_to_comment_data_non_public_rejected() {
|
||||||
|
$inbox = new \Activitypub\Rest\Inbox();
|
||||||
|
$object = array(
|
||||||
|
"to" => ["https://example.com/profile/test"],
|
||||||
|
"cc" => [],
|
||||||
|
);
|
||||||
|
$converted = $inbox->convert_object_to_comment_data($object);
|
||||||
|
$this->assertFalse($converted);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue