Skip to content

Commit

Permalink
Close #82
Browse files Browse the repository at this point in the history
  • Loading branch information
neomerx committed Feb 1, 2019
1 parent 070fa47 commit 8ff0934
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 2 deletions.
9 changes: 7 additions & 2 deletions src/Http/Headers/HeaderParametersParser.php
Original file line number Diff line number Diff line change
Expand Up @@ -84,11 +84,16 @@ public function parseContentTypeHeader(string $mediaType): MediaTypeInterface
$parameters = null;
$count = count($fields);
for ($idx = 1; $idx < $count; ++$idx) {
if (strpos($fields[$idx], '=') === false) {
$fieldValue = $fields[$idx];
if (empty($fieldValue) === true) {
continue;
}

if (strpos($fieldValue, '=') === false) {
throw new InvalidArgumentException('mediaType');
}

list($key, $value) = explode('=', $fields[$idx], 2);
list($key, $value) = explode('=', $fieldValue, 2);
$parameters[trim($key)] = trim($value, ' "');
}

Expand Down
5 changes: 5 additions & 0 deletions tests/Http/Headers/HeaderParametersParserTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,11 @@ public function testParseHeadersNoParams2(): void
self::assertEquals(self::MEDIA_TYPE, $contentType->getMediaType());
self::assertNull($contentType->getParameters());

/** @var MediaTypeInterface $contentType */
$contentType = $this->parser->parseContentTypeHeader(self::MEDIA_TYPE . ';');
self::assertEquals(self::MEDIA_TYPE, $contentType->getMediaType());
self::assertNull($contentType->getParameters());

/** @var AcceptMediaTypeInterface $accept */
$accept = $this->first($this->parser->parseAcceptHeader(self::MEDIA_TYPE . ';'));
self::assertEquals(self::MEDIA_TYPE, $accept->getMediaType());
Expand Down

0 comments on commit 8ff0934

Please sign in to comment.