From 8a0f30c05e5c96773a4bc886c499b95c2f3e2a25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Sessing=C3=B8?= Date: Mon, 22 Mar 2021 14:09:27 +0100 Subject: [PATCH] Custom regex fix - Fixed issue with custom-regex maching both host-name and url (issue: #503). - Changed TestRouter so host-name is always set. --- src/Pecee/SimpleRouter/Route/LoadableRoute.php | 2 +- tests/Pecee/SimpleRouter/RouterUrlTest.php | 12 ++++++++++++ tests/TestRouter.php | 5 +++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/Pecee/SimpleRouter/Route/LoadableRoute.php b/src/Pecee/SimpleRouter/Route/LoadableRoute.php index 536c415..ba03159 100644 --- a/src/Pecee/SimpleRouter/Route/LoadableRoute.php +++ b/src/Pecee/SimpleRouter/Route/LoadableRoute.php @@ -60,7 +60,7 @@ abstract class LoadableRoute extends Route implements ILoadableRoute return null; } - return ((bool)preg_match($this->regex, $request->getHost() . $url) !== false); + return ((bool)preg_match($this->regex, $url) !== false); } /** diff --git a/tests/Pecee/SimpleRouter/RouterUrlTest.php b/tests/Pecee/SimpleRouter/RouterUrlTest.php index 267a8fb..2aa4706 100644 --- a/tests/Pecee/SimpleRouter/RouterUrlTest.php +++ b/tests/Pecee/SimpleRouter/RouterUrlTest.php @@ -171,4 +171,16 @@ class RouterUrlTest extends \PHPUnit\Framework\TestCase } + public function testCustomRegex() + { + TestRouter::request()->setHost('google.com'); + + TestRouter::get('/admin/', function() { + return 'match'; + })->setMatch('/^\/admin\/?(.*)/i'); + + $output = TestRouter::debugOutput('/admin/asd/bec/123', 'get'); + $this->assertEquals('match', $output); + } + } \ No newline at end of file diff --git a/tests/TestRouter.php b/tests/TestRouter.php index 7bf86da..1a1b4c1 100644 --- a/tests/TestRouter.php +++ b/tests/TestRouter.php @@ -3,6 +3,11 @@ class TestRouter extends \Pecee\SimpleRouter\SimpleRouter { + public function __construct() + { + static::request()->setHost('testhost.com'); + } + public static function debugNoReset($testUrl, $testMethod = 'get') { $request = static::request();