Move Api\unsupported tests and remove dependency to System::jsonExit()
This commit is contained in:
parent
c0219fe2fa
commit
e7f84d4934
5 changed files with 52 additions and 50 deletions
|
@ -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]]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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.
|
||||||
*
|
*
|
||||||
|
|
|
@ -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());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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()
|
||||||
|
|
31
tests/src/Module/BaseApiTest.php
Normal file
31
tests/src/Module/BaseApiTest.php
Normal 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)
|
||||||
|
);
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue