diff --git a/src/Module/Api/Twitter/Users/Lookup.php b/src/Module/Api/Twitter/Users/Lookup.php index 9d4c460c6e..2633020e84 100644 --- a/src/Module/Api/Twitter/Users/Lookup.php +++ b/src/Module/Api/Twitter/Users/Lookup.php @@ -39,8 +39,8 @@ class Lookup extends BaseApi $users = []; - if (!empty($_REQUEST['user_id'])) { - foreach (explode(',', $_REQUEST['user_id']) as $cid) { + if (!empty($request['user_id'])) { + foreach (explode(',', $request['user_id']) as $cid) { if (!empty($cid) && is_numeric($cid)) { $users[] = DI::twitterUser()->createFromContactId((int)$cid, $uid, false)->toArray(); } diff --git a/tests/legacy/ApiTest.php b/tests/legacy/ApiTest.php index 2067a35362..fea2bd5f1b 100644 --- a/tests/legacy/ApiTest.php +++ b/tests/legacy/ApiTest.php @@ -112,55 +112,6 @@ class ApiTest extends FixtureTest 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. * diff --git a/tests/src/Module/Api/ApiTest.php b/tests/src/Module/Api/ApiTest.php index 9d690b1af3..09fbb7bbe9 100644 --- a/tests/src/Module/Api/ApiTest.php +++ b/tests/src/Module/Api/ApiTest.php @@ -37,6 +37,31 @@ use Psr\Http\Message\ResponseInterface; 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. * @@ -52,6 +77,55 @@ abstract class ApiTest extends FixtureTest // 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 * diff --git a/tests/src/Module/Api/Twitter/Users/LookupTest.php b/tests/src/Module/Api/Twitter/Users/LookupTest.php index ddcedbc763..e54d20dcfb 100644 --- a/tests/src/Module/Api/Twitter/Users/LookupTest.php +++ b/tests/src/Module/Api/Twitter/Users/LookupTest.php @@ -2,6 +2,10 @@ 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; class LookupTest extends ApiTest @@ -13,8 +17,10 @@ class LookupTest extends ApiTest */ public function testApiUsersLookup() { - // $this->expectException(\Friendica\Network\HTTPException\NotFoundException::class); - // api_users_lookup('json'); + $this->expectException(NotFoundException::class); + + $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() { - // $_REQUEST['user_id'] = $this->otherUser['id']; - // $result = api_users_lookup('json'); - // self::assertOtherUser($result['users'][0]); + $lookup = new Lookup(DI::app(), DI::l10n(), DI::baseUrl(), DI::args(), DI::logger(), DI::profiler(), DI::apiResponse(), ['REQUEST_METHOD' => Router::GET]); + $respone = $lookup->run(['user_id' => static::OTHER_USER['id']]); + + $json = $this->toJson($respone); + + self::assertOtherUser($json[0]); } }