diff --git a/src/Module/Api/ApiResponse.php b/src/Module/Api/ApiResponse.php index c0ce7c756..9521e2270 100644 --- a/src/Module/Api/ApiResponse.php +++ b/src/Module/Api/ApiResponse.php @@ -4,8 +4,6 @@ namespace Friendica\Module\Api; use Friendica\App\Arguments; use Friendica\Core\L10n; -use Friendica\Core\System; -use Friendica\Object\Api\Mastodon\Error; use Friendica\Util\Arrays; use Friendica\Util\HTTPInputData; use Friendica\Util\XML; @@ -231,7 +229,7 @@ class ApiResponse ]); $error = $this->l10n->t('API endpoint %s %s is not implemented', strtoupper($method), $path); $error_description = $this->l10n->t('The API endpoint is currently not implemented but might be in the future.'); - $errorobj = new Error($error, $error_description); - System::jsonError(501, $errorobj->toArray()); + + $this->exit('error', ['error' => ['error' => $error, 'error_description' => $error_description]]); } } diff --git a/tests/legacy/ApiTest.php b/tests/legacy/ApiTest.php index 73ea1b332..cf5b09f98 100644 --- a/tests/legacy/ApiTest.php +++ b/tests/legacy/ApiTest.php @@ -499,23 +499,6 @@ class ApiTest extends FixtureTest */ } - /** - * Test the api_call() function with an unimplemented API. - * - * @runInSeparateProcess - * @preserveGlobalState disabled - */ - public function testApiCallWithUninplementedApi() - { - // @todo How to test the new API? - /* - self::assertEquals( - '{"status":{"error":"Not Found","code":"404 Not Found","request":""}}', - api_call($this->app) - ); - */ - } - /** * Test the api_call() function with a JSON result. * @@ -622,35 +605,6 @@ class ApiTest extends FixtureTest ); } - /** - * Test the api_call() function with an unauthorized user. - * - * @runInSeparateProcess - * @preserveGlobalState disabled - */ - public function testApiCallWithWrongAuth() - { - // @todo How to test the new API? - /* - global $API; - $API['api_path'] = [ - 'method' => 'method', - 'auth' => true - ]; - $_SESSION['authenticated'] = false; - $_SERVER['REQUEST_METHOD'] = 'method'; - $_SERVER['QUERY_STRING'] = 'pagename=api_path'; - - $args = DI::args()->determine($_SERVER, $_GET); - - self::assertEquals( - '{"status":{"error":"This API requires login","code":"401 Unauthorized","request":"api_path"}}', - api_call($this->app, $args) - ); - */ - } - - /** * Test the api_rss_extra() function. * diff --git a/tests/src/Module/Api/ApiResponseTest.php b/tests/src/Module/Api/ApiResponseTest.php index 7499e9a35..b6f582621 100644 --- a/tests/src/Module/Api/ApiResponseTest.php +++ b/tests/src/Module/Api/ApiResponseTest.php @@ -90,4 +90,19 @@ class ApiResponseTest extends MockedTest '' . "\n", ApiResponseDouble::getOutput()); } + + public function testUnsupported() + { + $l10n = \Mockery::mock(L10n::class); + $l10n->shouldReceive('t')->andReturnUsing(function ($args) { + return $args; + }); + $args = \Mockery::mock(Arguments::class); + $args->shouldReceive('getQueryString')->andReturn(''); + + $response = new ApiResponseDouble($l10n, $args, new NullLogger()); + $response->unsupported(); + + self::assertEquals('{"error":"API endpoint %s %s is not implemented","error_description":"The API endpoint is currently not implemented but might be in the future."}', ApiResponseDouble::getOutput()); + } } diff --git a/tests/src/Module/Api/Friendica/NotificationTest.php b/tests/src/Module/Api/Friendica/NotificationTest.php index 542ebad72..7a213e2a5 100644 --- a/tests/src/Module/Api/Friendica/NotificationTest.php +++ b/tests/src/Module/Api/Friendica/NotificationTest.php @@ -35,20 +35,24 @@ class NotificationTest extends ApiTest { self::markTestIncomplete('Needs BasicAuth as dynamic method for overriding first'); + /* $this->expectException(BadRequestException::class); DI::session()->set('uid', ''); Notification::rawContent(); + */ } public function testWithoutAuthenticatedUser() { self::markTestIncomplete('Needs BasicAuth as dynamic method for overriding first'); + /* $this->expectException(BadRequestException::class); DI::session()->set('uid', 41); Notification::rawContent(); + */ } public function testWithXmlResult() diff --git a/tests/src/Module/BaseApiTest.php b/tests/src/Module/BaseApiTest.php new file mode 100644 index 000000000..c985ade2a --- /dev/null +++ b/tests/src/Module/BaseApiTest.php @@ -0,0 +1,31 @@ + 'method', + 'auth' => true + ]; + $_SESSION['authenticated'] = false; + $_SERVER['REQUEST_METHOD'] = 'method'; + $_SERVER['QUERY_STRING'] = 'pagename=api_path'; + + $args = DI::args()->determine($_SERVER, $_GET); + + self::assertEquals( + '{"status":{"error":"This API requires login","code":"401 Unauthorized","request":"api_path"}}', + api_call($this->app, $args) + ); + */ + } +}