Skip to content

Commit eb1cd4b

Browse files
authored
Module config and header name are case insensitive now (#7)
1 parent f402525 commit eb1cd4b

File tree

3 files changed

+16
-2
lines changed

3 files changed

+16
-2
lines changed

src/HttpMethodOverrideService.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,13 @@ public function __construct(array $methodMap, array $overrideHeaders = null)
4646
*/
4747
public function getOverridedMethod($method, array $headers)
4848
{
49+
$headers = array_change_key_case($headers, CASE_LOWER);
50+
4951
if (! isset($this->methodMap[$method])) {
5052
return $method;
5153
}
5254
foreach ($this->overrideHeaders as $overrideHeader) {
55+
$overrideHeader = strtolower($overrideHeader);
5356
if (isset($headers[$overrideHeader]) && $this->isMethodInMap($headers[$overrideHeader], $this->methodMap[$method])) {
5457
return $headers[$overrideHeader];
5558
}

src/Module.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ final class Module implements ConfigProviderInterface
1212
public function getConfig()
1313
{
1414
$config = require __DIR__ . '/../config/config.php';
15-
$moduleConfig = require __DIR__ . '/../config/middleware.config.php';
15+
$moduleConfig = require __DIR__ . '/../config/module.config.php';
1616

1717
return array_merge($config, $moduleConfig);
1818
}

test/HttpMethodOverrideServiceTest.php

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public function testNotMethodInMap(array $methodMap)
2020
$this->assertSame('GET', $result);
2121
}
2222

23-
public function notmethodInMapProvider()
23+
public function notMethodInMapProvider()
2424
{
2525
return [
2626
[[]],
@@ -61,6 +61,17 @@ public function testOverrideWitoutHeader()
6161
$this->assertNotEquals('NONE', $result);
6262
}
6363

64+
public function testOverrideHeaderIsNotCaseSensitive()
65+
{
66+
$object = new HttpMethodOverrideService(['POST' => ['PUT']]);
67+
68+
$result = $object->getOverridedMethod('POST', [
69+
strtolower(HttpMethodOverrideService::OVERRIDE_HEADER_GOOGLE) => 'PUT',
70+
]);
71+
72+
$this->assertSame('PUT', $result);
73+
}
74+
6475
public function testOverrideWithHeaderButNotInMap()
6576
{
6677
$object = new HttpMethodOverrideService(['POST' => ['NONE']]);

0 commit comments

Comments
 (0)