Reenable Twitter/Lookup tests & add standard assertions

This commit is contained in:
Philipp 2021-12-09 21:32:17 +01:00
parent f9c490b29a
commit 616cf012f9
No known key found for this signature in database
GPG Key ID: 24A7501396EB5432
4 changed files with 90 additions and 56 deletions

View File

@ -39,8 +39,8 @@ class Lookup extends BaseApi
$users = []; $users = [];
if (!empty($_REQUEST['user_id'])) { if (!empty($request['user_id'])) {
foreach (explode(',', $_REQUEST['user_id']) as $cid) { foreach (explode(',', $request['user_id']) as $cid) {
if (!empty($cid) && is_numeric($cid)) { if (!empty($cid) && is_numeric($cid)) {
$users[] = DI::twitterUser()->createFromContactId((int)$cid, $uid, false)->toArray(); $users[] = DI::twitterUser()->createFromContactId((int)$cid, $uid, false)->toArray();
} }

View File

@ -112,55 +112,6 @@ class ApiTest extends FixtureTest
BasicAuth::setCurrentUserID($this->selfUser['id']); BasicAuth::setCurrentUserID($this->selfUser['id']);
} }
/**
* Assert that an user array contains expected keys.
*
* @param array $user User array
*
* @return void
*/
private function assertSelfUser(array $user)
{
self::assertEquals($this->selfUser['id'], $user['uid']);
self::assertEquals($this->selfUser['id'], $user['cid']);
self::assertEquals(1, $user['self']);
self::assertEquals('DFRN', $user['location']);
self::assertEquals($this->selfUser['name'], $user['name']);
self::assertEquals($this->selfUser['nick'], $user['screen_name']);
self::assertEquals('dfrn', $user['network']);
self::assertTrue($user['verified']);
}
/**
* Assert that an user array contains expected keys.
*
* @param array $user User array
*
* @return void
*/
private function assertOtherUser(array $user = [])
{
self::assertEquals($this->otherUser['id'], $user['id']);
self::assertEquals($this->otherUser['id'], $user['id_str']);
self::assertEquals($this->otherUser['name'], $user['name']);
self::assertEquals($this->otherUser['nick'], $user['screen_name']);
self::assertFalse($user['verified']);
}
/**
* Assert that a status array contains expected keys.
*
* @param array $status Status array
*
* @return void
*/
private function assertStatus(array $status = [])
{
self::assertIsString($status['text'] ?? '');
self::assertIsInt($status['id'] ?? '');
// We could probably do more checks here.
}
/** /**
* Assert that a list array contains expected keys. * Assert that a list array contains expected keys.
* *

View File

@ -37,6 +37,31 @@ use Psr\Http\Message\ResponseInterface;
abstract class ApiTest extends FixtureTest abstract class ApiTest extends FixtureTest
{ {
// User data that the test database is populated with
const SELF_USER = [
'id' => 42,
'name' => 'Self contact',
'nick' => 'selfcontact',
'nurl' => 'http://localhost/profile/selfcontact'
];
const FRIEND_USER = [
'id' => 44,
'name' => 'Friend contact',
'nick' => 'friendcontact',
'nurl' => 'http://localhost/profile/friendcontact'
];
const OTHER_USER = [
'id' => 43,
'name' => 'othercontact',
'nick' => 'othercontact',
'nurl' => 'http://localhost/profile/othercontact'
];
// User ID that we know is not in the database
const WRONG_USER_ID = 666;
/** /**
* Assert that the string is XML and contain the root element. * Assert that the string is XML and contain the root element.
* *
@ -52,6 +77,55 @@ abstract class ApiTest extends FixtureTest
// We could probably do more checks here. // We could probably do more checks here.
} }
/**
* Assert that an user array contains expected keys.
*
* @param \stdClass $user User
*
* @return void
*/
protected function assertSelfUser(\stdClass $user)
{
self::assertEquals(self::SELF_USER['id'], $user->uid);
self::assertEquals(self::SELF_USER['id'], $user->cid);
self::assertEquals(1, $user->self);
self::assertEquals('DFRN', $user->location);
self::assertEquals(self::SELF_USER['name'], $user->name);
self::assertEquals(self::SELF_USER['nick'], $user->screen_name);
self::assertEquals('dfrn', $user->network);
self::assertTrue($user->verified);
}
/**
* Assert that an user array contains expected keys.
*
* @param \stdClass $user User
*
* @return void
*/
protected function assertOtherUser(\stdClass $user)
{
self::assertEquals(self::OTHER_USER['id'], $user->id);
self::assertEquals(self::OTHER_USER['id'], $user->id_str);
self::assertEquals(self::OTHER_USER['name'], $user->name);
self::assertEquals(self::OTHER_USER['nick'], $user->screen_name);
self::assertFalse($user->verified);
}
/**
* Assert that a status array contains expected keys.
*
* @param array $status Status array
*
* @return void
*/
protected function assertStatus(array $status = [])
{
self::assertIsString($status['text'] ?? '');
self::assertIsInt($status['id'] ?? '');
// We could probably do more checks here.
}
/** /**
* Transforms a response into a JSON class * Transforms a response into a JSON class
* *

View File

@ -2,6 +2,10 @@
namespace Friendica\Test\src\Module\Api\Twitter\Users; namespace Friendica\Test\src\Module\Api\Twitter\Users;
use Friendica\App\Router;
use Friendica\DI;
use Friendica\Module\Api\Twitter\Users\Lookup;
use Friendica\Network\HTTPException\NotFoundException;
use Friendica\Test\src\Module\Api\ApiTest; use Friendica\Test\src\Module\Api\ApiTest;
class LookupTest extends ApiTest class LookupTest extends ApiTest
@ -13,8 +17,10 @@ class LookupTest extends ApiTest
*/ */
public function testApiUsersLookup() public function testApiUsersLookup()
{ {
// $this->expectException(\Friendica\Network\HTTPException\NotFoundException::class); $this->expectException(NotFoundException::class);
// api_users_lookup('json');
$lookup = new Lookup(DI::app(), DI::l10n(), DI::baseUrl(), DI::args(), DI::logger(), DI::profiler(), DI::apiResponse(), ['REQUEST_METHOD' => Router::GET]);
$lookup->run();
} }
/** /**
@ -24,8 +30,11 @@ class LookupTest extends ApiTest
*/ */
public function testApiUsersLookupWithUserId() public function testApiUsersLookupWithUserId()
{ {
// $_REQUEST['user_id'] = $this->otherUser['id']; $lookup = new Lookup(DI::app(), DI::l10n(), DI::baseUrl(), DI::args(), DI::logger(), DI::profiler(), DI::apiResponse(), ['REQUEST_METHOD' => Router::GET]);
// $result = api_users_lookup('json'); $respone = $lookup->run(['user_id' => static::OTHER_USER['id']]);
// self::assertOtherUser($result['users'][0]);
$json = $this->toJson($respone);
self::assertOtherUser($json[0]);
} }
} }