remove paging from get_all_followers
and add tests
This commit is contained in:
parent
ca9e71ffc1
commit
5d417d9f5c
2 changed files with 77 additions and 0 deletions
|
@ -199,6 +199,7 @@ class Followers {
|
||||||
*/
|
*/
|
||||||
public static function get_all_followers() {
|
public static function get_all_followers() {
|
||||||
$args = array(
|
$args = array(
|
||||||
|
'nopaging' => true,
|
||||||
// phpcs:ignore WordPress.DB.SlowDBQuery.slow_db_query_meta_query
|
// phpcs:ignore WordPress.DB.SlowDBQuery.slow_db_query_meta_query
|
||||||
'meta_query' => array(
|
'meta_query' => array(
|
||||||
'relation' => 'AND',
|
'relation' => 'AND',
|
||||||
|
|
|
@ -329,6 +329,82 @@ class Test_Activitypub_Followers extends WP_UnitTestCase {
|
||||||
$this->assertEquals( $name, $follower->get_name() );
|
$this->assertEquals( $name, $follower->get_name() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function test_get_inboxes() {
|
||||||
|
for ( $i = 0; $i < 30; $i++ ) {
|
||||||
|
$meta = array(
|
||||||
|
'id' => 'https://example.org/users/' . $i,
|
||||||
|
'url' => 'https://example.org/users/' . $i,
|
||||||
|
'inbox' => 'https://example.org/users/' . $i . '/inbox',
|
||||||
|
'name' => 'user' . $i,
|
||||||
|
'preferredUsername' => 'user' . $i,
|
||||||
|
'publicKey' => 'https://example.org/users/' . $i . '#main-key',
|
||||||
|
'publicKeyPem' => $i,
|
||||||
|
);
|
||||||
|
|
||||||
|
$follower = new \Activitypub\Model\Follower();
|
||||||
|
$follower->from_array( $meta );
|
||||||
|
|
||||||
|
$id = $follower->upsert();
|
||||||
|
|
||||||
|
add_post_meta( $id, 'activitypub_user_id', 1 );
|
||||||
|
}
|
||||||
|
|
||||||
|
$inboxes = \Activitypub\Collection\Followers::get_inboxes( 1 );
|
||||||
|
|
||||||
|
$this->assertCount( 30, $inboxes );
|
||||||
|
|
||||||
|
wp_cache_delete( sprintf( \Activitypub\Collection\Followers::CACHE_KEY_INBOXES, 1 ), 'activitypub' );
|
||||||
|
|
||||||
|
for ( $j = 0; $j < 5; $j++ ) {
|
||||||
|
$k = $j + 100;
|
||||||
|
$meta = array(
|
||||||
|
'id' => 'https://example.org/users/' . $k,
|
||||||
|
'url' => 'https://example.org/users/' . $k,
|
||||||
|
'inbox' => 'https://example.org/users/' . $j . '/inbox',
|
||||||
|
'name' => 'user' . $k,
|
||||||
|
'preferredUsername' => 'user' . $k,
|
||||||
|
'publicKey' => 'https://example.org/users/' . $k . '#main-key',
|
||||||
|
'publicKeyPem' => $k,
|
||||||
|
);
|
||||||
|
|
||||||
|
$follower = new \Activitypub\Model\Follower();
|
||||||
|
$follower->from_array( $meta );
|
||||||
|
|
||||||
|
$id = $follower->upsert();
|
||||||
|
|
||||||
|
add_post_meta( $id, 'activitypub_user_id', 1 );
|
||||||
|
}
|
||||||
|
|
||||||
|
$inboxes2 = \Activitypub\Collection\Followers::get_inboxes( 1 );
|
||||||
|
|
||||||
|
$this->assertCount( 30, $inboxes2 );
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test_get_all_followers() {
|
||||||
|
for ( $i = 0; $i < 30; $i++ ) {
|
||||||
|
$meta = array(
|
||||||
|
'id' => 'https://example.org/users/' . $i,
|
||||||
|
'url' => 'https://example.org/users/' . $i,
|
||||||
|
'inbox' => 'https://example.org/users/' . $i . '/inbox',
|
||||||
|
'name' => 'user' . $i,
|
||||||
|
'preferredUsername' => 'user' . $i,
|
||||||
|
'publicKey' => 'https://example.org/users/' . $i . '#main-key',
|
||||||
|
'publicKeyPem' => $i,
|
||||||
|
);
|
||||||
|
|
||||||
|
$follower = new \Activitypub\Model\Follower();
|
||||||
|
$follower->from_array( $meta );
|
||||||
|
|
||||||
|
$id = $follower->upsert();
|
||||||
|
|
||||||
|
add_post_meta( $id, 'activitypub_user_id', 1 );
|
||||||
|
}
|
||||||
|
|
||||||
|
$followers = \Activitypub\Collection\Followers::get_all_followers();
|
||||||
|
|
||||||
|
$this->assertCount( 30, $followers );
|
||||||
|
}
|
||||||
|
|
||||||
public static function http_request_host_is_external( $in, $host ) {
|
public static function http_request_host_is_external( $in, $host ) {
|
||||||
if ( in_array( $host, array( 'example.com', 'example.org' ), true ) ) {
|
if ( in_array( $host, array( 'example.com', 'example.org' ), true ) ) {
|
||||||
return true;
|
return true;
|
||||||
|
|
Loading…
Reference in a new issue