$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();
}
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.
*
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.
*
// 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
*
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
*/
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();
}
/**
*/
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]);
}
}