From adc879bb133f4fa5f00c04d1bfcfe7948bd32086 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Sessing=C3=B8?= Date: Mon, 29 Mar 2021 18:45:49 +0200 Subject: [PATCH] [BUGFIX] Fixed InputHandler::find and InputHandler::value failing when using array methods. --- src/Pecee/Http/Input/InputHandler.php | 4 ++++ tests/Pecee/SimpleRouter/InputHandlerTest.php | 13 +++++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/Pecee/Http/Input/InputHandler.php b/src/Pecee/Http/Input/InputHandler.php index 9fb745f..9586720 100644 --- a/src/Pecee/Http/Input/InputHandler.php +++ b/src/Pecee/Http/Input/InputHandler.php @@ -231,6 +231,10 @@ class InputHandler { $element = null; + if(count($methods) > 0) { + $methods = is_array(...$methods) ? array_values(...$methods) : $methods; + } + if (count($methods) === 0 || in_array(Request::REQUEST_TYPE_GET, $methods, true) === true) { $element = $this->get($index); } diff --git a/tests/Pecee/SimpleRouter/InputHandlerTest.php b/tests/Pecee/SimpleRouter/InputHandlerTest.php index 11dcf28..be50698 100644 --- a/tests/Pecee/SimpleRouter/InputHandlerTest.php +++ b/tests/Pecee/SimpleRouter/InputHandlerTest.php @@ -122,7 +122,20 @@ class InputHandlerTest extends \PHPUnit\Framework\TestCase $_GET = []; } + public function testFindInput() { + global $_POST; + $_POST['hello'] = 'motto'; + + $router = TestRouter::router(); + $router->reset(); + $router->getRequest()->setMethod('post'); + $inputHandler = TestRouter::request()->getInputHandler(); + + $value = $inputHandler->value('hello', null, \Pecee\Http\Request::$requestTypesPost); + + $this->assertEquals($_POST['hello'], $value); + } public function testFile() {