From ccf7e251b5c3ef285a40875ea9390817509845f7 Mon Sep 17 00:00:00 2001 From: Philipp Date: Thu, 9 Dec 2021 21:17:00 +0100 Subject: [PATCH] Reenable Twitter/Statuses tests --- src/Module/Api/Twitter/Statuses/Show.php | 8 ++-- .../Module/Api/Twitter/Statuses/ShowTest.php | 40 +++++++++++++------ 2 files changed, 31 insertions(+), 17 deletions(-) diff --git a/src/Module/Api/Twitter/Statuses/Show.php b/src/Module/Api/Twitter/Statuses/Show.php index 66939bf7ac..905c220f6d 100644 --- a/src/Module/Api/Twitter/Statuses/Show.php +++ b/src/Module/Api/Twitter/Statuses/Show.php @@ -42,14 +42,14 @@ class Show extends BaseApi $uid = BaseApi::getCurrentUserID(); if (empty($this->parameters['id'])) { - $id = intval($_REQUEST['id'] ?? 0); + $id = intval($request['id'] ?? 0); } else { $id = (int)$this->parameters['id']; } Logger::notice('API: api_statuses_show: ' . $id); - $conversation = !empty($_REQUEST['conversation']); + $conversation = !empty($request['conversation']); // try to fetch the item for the local user - or the public item, if there is no local one $uri_item = Post::selectFirst(['uri-id'], ['id' => $id]); @@ -79,7 +79,7 @@ class Show extends BaseApi throw new BadRequestException(sprintf("There is no status or conversation with the id %d.", $id)); } - $include_entities = strtolower(($_REQUEST['include_entities'] ?? 'false') == 'true'); + $include_entities = strtolower(($request['include_entities'] ?? 'false') == 'true'); $ret = []; while ($status = DBA::fetch($statuses)) { @@ -92,7 +92,7 @@ class Show extends BaseApi $this->response->exit('statuses', $data, $this->parameters['extension'] ?? null, Contact::getPublicIdByUserId($uid)); } else { $data = ['status' => $ret[0]]; - $this->response->exit('status', ['status' => $data], $this->parameters['extension'] ?? null, Contact::getPublicIdByUserId($uid)); + $this->response->exit('status', $data, $this->parameters['extension'] ?? null, Contact::getPublicIdByUserId($uid)); } } } diff --git a/tests/src/Module/Api/Twitter/Statuses/ShowTest.php b/tests/src/Module/Api/Twitter/Statuses/ShowTest.php index 00fcbd5541..c2d87a95f4 100644 --- a/tests/src/Module/Api/Twitter/Statuses/ShowTest.php +++ b/tests/src/Module/Api/Twitter/Statuses/ShowTest.php @@ -2,6 +2,10 @@ namespace Friendica\Test\src\Module\Api\Twitter\Statuses; +use Friendica\App\Router; +use Friendica\DI; +use Friendica\Module\Api\Twitter\Statuses\Show; +use Friendica\Network\HTTPException\BadRequestException; use Friendica\Test\src\Module\Api\ApiTest; class ShowTest extends ApiTest @@ -13,8 +17,10 @@ class ShowTest extends ApiTest */ public function testApiStatusesShow() { - // $this->expectException(\Friendica\Network\HTTPException\BadRequestException::class); - // api_statuses_show('json'); + $this->expectException(BadRequestException::class); + + $show = new Show(DI::app(), DI::l10n(), DI::baseUrl(), DI::args(), DI::logger(), DI::profiler(), DI::apiResponse(), ['REQUEST_METHOD' => Router::GET]); + $show->run(); } /** @@ -24,9 +30,13 @@ class ShowTest extends ApiTest */ public function testApiStatusesShowWithId() { - // DI::args()->setArgv(['', '', '', 1]); - // $result = api_statuses_show('json'); - // self::assertStatus($result['status']); + $show = new Show(DI::app(), DI::l10n(), DI::baseUrl(), DI::args(), DI::logger(), DI::profiler(), DI::apiResponse(), ['REQUEST_METHOD' => Router::GET]); + $response = $show->run(['id' => 1]); + + $json = $this->toJson($response); + + self::assertIsInt($json->id); + self::assertIsString($json->text); } /** @@ -36,15 +46,17 @@ class ShowTest extends ApiTest */ public function testApiStatusesShowWithConversation() { - /* - DI::args()->setArgv(['', '', '', 1]); - $_REQUEST['conversation'] = 1; - $result = api_statuses_show('json'); - self::assertNotEmpty($result['status']); - foreach ($result['status'] as $status) { - self::assertStatus($status); + $show = new Show(DI::app(), DI::l10n(), DI::baseUrl(), DI::args(), DI::logger(), DI::profiler(), DI::apiResponse(), ['REQUEST_METHOD' => Router::GET]); + $response = $show->run(['id' => 1, 'conversation' => 1]); + + $json = $this->toJson($response); + + self::assertIsArray($json); + + foreach ($json as $status) { + self::assertIsInt($status->id); + self::assertIsString($status->text); } - */ } /** @@ -54,6 +66,8 @@ class ShowTest extends ApiTest */ public function testApiStatusesShowWithUnallowedUser() { + self::markTestIncomplete('Needs BasicAuth as dynamic method for overriding first'); + // $this->expectException(\Friendica\Network\HTTPException\UnauthorizedException::class); // BasicAuth::setCurrentUserID(); // api_statuses_show('json');