1
1
Fork 0
mirror of https://code.mensbeam.com/MensBeam/Arsse.git synced 2024-12-22 13:12:41 +00:00

Shore up coverage

This commit is contained in:
J. King 2024-07-09 14:58:31 -04:00
parent b68a68b500
commit aed3749da8
3 changed files with 11 additions and 1 deletions

View file

@ -31,7 +31,8 @@ class Exception extends \JKingWeb\Arsse\AbstractException {
} elseif (preg_match("/^cURL error (\d+):/", $msg, $match)) { } elseif (preg_match("/^cURL error (\d+):/", $msg, $match)) {
$msgID = self::CURL_ERROR_MAP[(int) $match[1]] ?? "internalError"; $msgID = self::CURL_ERROR_MAP[(int) $match[1]] ?? "internalError";
} else { } else {
$msgID = "internalError"; // Fallback for future Guzzle exceptions we may not know about
$msgID = "internalError"; // @codeCoverageIgnore
} }
} elseif ($e instanceof PicoFeedException) { } elseif ($e instanceof PicoFeedException) {
$className = get_class($e); $className = get_class($e);

View file

@ -315,6 +315,9 @@ class TestValueInfo extends \JKingWeb\Arsse\Test\AbstractTest {
$this->assertNan($act, $msg); $this->assertNan($act, $msg);
} elseif (is_scalar($exp)) { } elseif (is_scalar($exp)) {
$this->assertSame($exp, $act, $msg); $this->assertSame($exp, $act, $msg);
} elseif ($exp instanceof \DateInterval && $act instanceof \DateInterval) {
$format = "\Py\Ym\Md\D\Th\HiMs\S";
$this->assertSame($exp->format($format), $act->format($format), $msg);
} else { } else {
$this->assertEquals($exp, $act, $msg); $this->assertEquals($exp, $act, $msg);
} }
@ -532,6 +535,7 @@ class TestValueInfo extends \JKingWeb\Arsse\Test\AbstractTest {
[$this->i("P2DT1H"), [null,true], [true, false], [(48 + 1) * 60 * 60, false], [1.0 * (48 + 1) * 60 * 60, false], ["P2DT1H", true], [[$this->i("P2DT1H")], false], [$this->i("P2DT1H"), true]], [$this->i("P2DT1H"), [null,true], [true, false], [(48 + 1) * 60 * 60, false], [1.0 * (48 + 1) * 60 * 60, false], ["P2DT1H", true], [[$this->i("P2DT1H")], false], [$this->i("P2DT1H"), true]],
[$this->i("PT0H"), [null,true], [true, false], [0, false], [0.0, false], ["PT0S", true], [[$this->i("PT0H")], false], [$this->i("PT0H"), true]], [$this->i("PT0H"), [null,true], [true, false], [0, false], [0.0, false], ["PT0S", true], [[$this->i("PT0H")], false], [$this->i("PT0H"), true]],
[$dateDiff, [null,true], [true, false], [366 * 24 * 60 * 60, false], [1.0 * 366 * 24 * 60 * 60, false], ["P366D", true], [[$dateDiff], false], [$dateNorm, true]], [$dateDiff, [null,true], [true, false], [366 * 24 * 60 * 60, false], [1.0 * 366 * 24 * 60 * 60, false], ["P366D", true], [[$dateDiff], false], [$dateNorm, true]],
["1 year, 2 days", [null,true], [true, false], [0, false], [0.0, false], ["1 year, 2 days", true], [["1 year, 2 days"], false], [$this->i("P1Y2D"), false]],
["P1Y2D", [null,true], [true, false], [0, false], [0.0, false], ["P1Y2D", true], [["P1Y2D"], false], [$this->i("P1Y2D"), true]], ["P1Y2D", [null,true], [true, false], [0, false], [0.0, false], ["P1Y2D", true], [["P1Y2D"], false], [$this->i("P1Y2D"), true]],
] as $set) { ] as $set) {
// shift the input value off the set // shift the input value off the set

View file

@ -169,6 +169,11 @@ class TestV1 extends \JKingWeb\Arsse\Test\AbstractTest {
]; ];
} }
public function testRejectMalformedData(): void {
$exp = V1::respError(["InvalidBodyJSON", "Syntax error"], 400);
$this->assertMessage($exp, $this->req("POST", "/discover", "{"));
}
public function testRejectBadlyTypedData(): void { public function testRejectBadlyTypedData(): void {
$exp = V1::respError(["InvalidInputType", 'field' => "url", 'expected' => "string", 'actual' => "integer"], 422); $exp = V1::respError(["InvalidInputType", 'field' => "url", 'expected' => "string", 'actual' => "integer"], 422);
$this->assertMessage($exp, $this->req("POST", "/discover", ['url' => 2112])); $this->assertMessage($exp, $this->req("POST", "/discover", ['url' => 2112]));