diff --git a/lib/REST/Miniflux/V1.php b/lib/REST/Miniflux/V1.php
index 887d61f7..c2e84dd7 100644
--- a/lib/REST/Miniflux/V1.php
+++ b/lib/REST/Miniflux/V1.php
@@ -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 {
diff --git a/tests/cases/REST/Miniflux/TestV1.php b/tests/cases/REST/Miniflux/TestV1.php
index c62f0c03..a66a8900 100644
--- a/tests/cases/REST/Miniflux/TestV1.php
+++ b/tests/cases/REST/Miniflux/TestV1.php
@@ -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", '', ['Content-Type' => "application/xml"]));
- $exp = new EmptyResponse(400);
- $this->assertMessage($exp, $this->req("PUT", "/folders/1", ''));
- $this->assertMessage($exp, $this->req("PUT", "/folders/1", '', ['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"],
];
}
}