Move Api\unsupported tests and remove dependency to System::jsonExit()

This commit is contained in:
Philipp 2021-11-12 22:44:59 +01:00
parent c0219fe2fa
commit e7f84d4934
No known key found for this signature in database
GPG Key ID: 24A7501396EB5432
5 changed files with 52 additions and 50 deletions

View File

@ -4,8 +4,6 @@ namespace Friendica\Module\Api;
use Friendica\App\Arguments; use Friendica\App\Arguments;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\System;
use Friendica\Object\Api\Mastodon\Error;
use Friendica\Util\Arrays; use Friendica\Util\Arrays;
use Friendica\Util\HTTPInputData; use Friendica\Util\HTTPInputData;
use Friendica\Util\XML; 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 = $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.'); $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]]);
} }
} }

View File

@ -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. * 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. * Test the api_rss_extra() function.
* *

View File

@ -90,4 +90,19 @@ class ApiResponseTest extends MockedTest
'</status>' . "\n", '</status>' . "\n",
ApiResponseDouble::getOutput()); 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());
}
} }

View File

@ -35,20 +35,24 @@ class NotificationTest extends ApiTest
{ {
self::markTestIncomplete('Needs BasicAuth as dynamic method for overriding first'); self::markTestIncomplete('Needs BasicAuth as dynamic method for overriding first');
/*
$this->expectException(BadRequestException::class); $this->expectException(BadRequestException::class);
DI::session()->set('uid', ''); DI::session()->set('uid', '');
Notification::rawContent(); Notification::rawContent();
*/
} }
public function testWithoutAuthenticatedUser() public function testWithoutAuthenticatedUser()
{ {
self::markTestIncomplete('Needs BasicAuth as dynamic method for overriding first'); self::markTestIncomplete('Needs BasicAuth as dynamic method for overriding first');
/*
$this->expectException(BadRequestException::class); $this->expectException(BadRequestException::class);
DI::session()->set('uid', 41); DI::session()->set('uid', 41);
Notification::rawContent(); Notification::rawContent();
*/
} }
public function testWithXmlResult() public function testWithXmlResult()

View File

@ -0,0 +1,31 @@
<?php
namespace Friendica\Test\src\Module;
use Friendica\Test\src\Module\Api\ApiTest;
class BaseApiTest extends ApiTest
{
public function withWrongAuth()
{
self::markTestIncomplete('Needs BasicAuth as dynamic method for overriding first');
/*
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)
);
*/
}
}