1
1
Fork 0
mirror of https://code.mensbeam.com/MensBeam/Arsse.git synced 2024-12-23 09:02:41 +00:00
Arsse/tests/cases/Misc/TestHTTP.php

33 lines
1.4 KiB
PHP
Raw Normal View History

2019-09-28 02:38:03 +00:00
<?php
/** @license MIT
* Copyright 2017 J. King, Dustin Wilson et al.
* See LICENSE and AUTHORS files for details */
declare(strict_types=1);
namespace JKingWeb\Arsse\TestCase\Misc;
use JKingWeb\Arsse\Misc\HTTP;
/** @covers \JKingWeb\Arsse\Misc\HTTP */
class TestHTTP extends \JKingWeb\Arsse\Test\AbstractTest {
/** @dataProvider provideMediaTypes */
2020-01-20 18:52:48 +00:00
public function testMatchMediaType(string $header, array $types, bool $exp): void {
$msg = (new \Laminas\Diactoros\Request)->withHeader("Content-Type", $header);
2019-09-28 02:38:03 +00:00
$this->assertSame($exp, HTTP::matchType($msg, ...$types));
$msg = (new \Laminas\Diactoros\Response)->withHeader("Content-Type", $header);
2019-09-28 02:38:03 +00:00
$this->assertSame($exp, HTTP::matchType($msg, ...$types));
}
public function provideMediaTypes(): array {
2019-09-28 02:38:03 +00:00
return [
["application/json", ["application/json"], true],
["APPLICATION/JSON", ["application/json"], true],
["text/JSON", ["application/json", "text/json"], true],
["text/json; charset=utf-8", ["application/json", "text/json"], true],
["", ["application/json"], false],
["", ["application/json", ""], true],
["application/json ;", ["application/json"], true],
2019-09-28 02:38:03 +00:00
];
}
}