Fixup ApiTests about Content-Type

This commit is contained in:
Benoît Burnichon
2015-05-11 18:11:51 +02:00
parent 4d4f631672
commit 72fdfa7141
4 changed files with 15 additions and 9 deletions

View File

@@ -112,7 +112,7 @@ class Result
*
* @return Result
*
* @throws InvalidArgumentException
* @throws \InvalidArgumentException
*/
public static function createError(Request $request, $code, $message)
{
@@ -139,6 +139,10 @@ class Result
$errorType = self::ERROR_METHODNOTALLOWED;
$errorMessage = 'Attempting to use POST with a GET-only endpoint, or vice-versa';
break;
case 406:
$errorType = self::ERROR_UNACCEPTABLE;
$errorMessage = 'Request content type is not acceptable';
break;
case 500:
$errorType = self::ERROR_INTERNALSERVERERROR;
$errorMessage = 'Internal Server Error';

View File

@@ -9,11 +9,9 @@
*/
namespace Alchemy\Phrasea\Controller\Prod;
use Alchemy\Phrasea\Application;
use Alchemy\Phrasea\Controller\Controller;
use Alchemy\Phrasea\Helper\Record as RecordHelper;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Exception\HttpException;
class BridgeController extends Controller

View File

@@ -55,10 +55,8 @@ class ApiExceptionHandlerSubscriber implements EventSubscriberInterface
} elseif ($e instanceof NotFoundHttpException) {
$code = 404;
} elseif ($e instanceof HttpExceptionInterface) {
if (503 === $e->getStatusCode()) {
$code = Result::ERROR_MAINTENANCE;
} else if (406 === $e->getStatusCode()) {
$code = Result::ERROR_UNACCEPTABLE;
if (in_array($e->getStatusCode(), [503, 406])) {
$code = $e->getStatusCode();
} else {
$code = 500;
}

View File

@@ -92,7 +92,10 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
$route,
$this->getParameters(),
$this->getAddRecordFile(),
array('HTTP_Accept' => $this->getAcceptMimeType()),
[
'HTTP_ACCEPT' => $this->getAcceptMimeType(),
'CONTENT_TYPE' => 'application/json',
],
json_encode(array('stories' => array($story)))
);
$content = $this->unserialize(self::$DI['client']->getResponse()->getContent());
@@ -134,7 +137,10 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
$route,
$this->getParameters(),
$this->getAddRecordFile(),
array('HTTP_Accept' => $this->getAcceptMimeType()),
[
'HTTP_ACCEPT' => $this->getAcceptMimeType(),
'CONTENT_TYPE' => 'application/json',
],
json_encode(array('story_records' => array($records)))
);
$content = $this->unserialize(self::$DI['client']->getResponse()->getContent());