mirror of
https://code.mensbeam.com/MensBeam/Arsse.git
synced 2024-12-22 13:12:41 +00:00
OPTIONS tests
This commit is contained in:
parent
7fa5523a7d
commit
2a0d6e6599
2 changed files with 12 additions and 16 deletions
|
@ -18,8 +18,8 @@ use Psr\Http\Message\ResponseInterface;
|
|||
use Laminas\Diactoros\Response\EmptyResponse;
|
||||
|
||||
class V1 extends \JKingWeb\Arsse\REST\AbstractHandler {
|
||||
protected const ACCEPTED_TYPES_OPML = ["text/xml", "application/xml", "text/x-opml"];
|
||||
protected const ACCEPTED_TYPES_JSON = ["application/json", "text/json"];
|
||||
protected const ACCEPTED_TYPES_OPML = ["application/xml", "text/xml", "text/x-opml"];
|
||||
protected const ACCEPTED_TYPES_JSON = ["application/json"];
|
||||
protected const TOKEN_LENGTH = 32;
|
||||
public const VERSION = "2.0.25";
|
||||
|
||||
|
@ -140,7 +140,7 @@ class V1 extends \JKingWeb\Arsse\REST\AbstractHandler {
|
|||
array_unshift($allowed, "HEAD");
|
||||
}
|
||||
return new EmptyResponse(204, [
|
||||
'Allow' => implode(",", $allowed),
|
||||
'Allow' => implode(", ", $allowed),
|
||||
'Accept' => implode(", ", $url === "/import" ? self::ACCEPTED_TYPES_OPML : self::ACCEPTED_TYPES_JSON),
|
||||
]);
|
||||
} else {
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* See LICENSE and AUTHORS files for details */
|
||||
|
||||
declare(strict_types=1);
|
||||
namespace JKingWeb\Arsse\TestCase\REST\NextcloudNews;
|
||||
namespace JKingWeb\Arsse\TestCase\REST\Miniflux;
|
||||
|
||||
use JKingWeb\Arsse\Arsse;
|
||||
use JKingWeb\Arsse\User;
|
||||
|
@ -98,20 +98,14 @@ class TestV1 extends \JKingWeb\Arsse\Test\AbstractTest {
|
|||
public function provideInvalidPaths(): array {
|
||||
return [
|
||||
["/", "GET", 404],
|
||||
["/", "OPTIONS", 404],
|
||||
["/me", "POST", 405, "GET"],
|
||||
["/me/", "GET", 404],
|
||||
];
|
||||
}
|
||||
|
||||
public function xtestRespondToInvalidInputTypes(): void {
|
||||
$exp = new EmptyResponse(415, ['Accept' => "application/json"]);
|
||||
$this->assertMessage($exp, $this->req("PUT", "/folders/1", '<data/>', ['Content-Type' => "application/xml"]));
|
||||
$exp = new EmptyResponse(400);
|
||||
$this->assertMessage($exp, $this->req("PUT", "/folders/1", '<data/>'));
|
||||
$this->assertMessage($exp, $this->req("PUT", "/folders/1", '<data/>', ['Content-Type' => null]));
|
||||
}
|
||||
|
||||
/** @dataProvider provideOptionsRequests */
|
||||
public function xtestRespondToOptionsRequests(string $url, string $allow, string $accept): void {
|
||||
public function testRespondToOptionsRequests(string $url, string $allow, string $accept): void {
|
||||
$exp = new EmptyResponse(204, [
|
||||
'Allow' => $allow,
|
||||
'Accept' => $accept,
|
||||
|
@ -121,9 +115,11 @@ class TestV1 extends \JKingWeb\Arsse\Test\AbstractTest {
|
|||
|
||||
public function provideOptionsRequests(): array {
|
||||
return [
|
||||
["/feeds", "HEAD,GET,POST", "application/json"],
|
||||
["/feeds/2112", "DELETE", "application/json"],
|
||||
["/user", "HEAD,GET", "application/json"],
|
||||
["/feeds", "HEAD, GET, POST", "application/json"],
|
||||
["/feeds/2112", "HEAD, GET, PUT, DELETE", "application/json"],
|
||||
["/me", "HEAD, GET", "application/json"],
|
||||
["/users/someone", "HEAD, GET", "application/json"],
|
||||
["/import", "POST", "application/xml, text/xml, text/x-opml"],
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue