Merge pull request #521 from skipperbent/v4-fix-group-domain

[BUGFIX] Fixed group not matching domain with no parameters (issue: #468)
This commit is contained in:
Simon Sessingø
2021-03-26 01:35:37 +01:00
committed by GitHub
2 changed files with 42 additions and 3 deletions
+5 -2
View File
@@ -26,12 +26,15 @@ class RouteGroup extends Route implements IGroupRoute
foreach ($this->domains as $domain) { foreach ($this->domains as $domain) {
// If domain has no parameters but matches
if ($domain === $request->getHost()) {
return true;
}
$parameters = $this->parseParameters($domain, $request->getHost(), '.*'); $parameters = $this->parseParameters($domain, $request->getHost(), '.*');
if ($parameters !== null && \count($parameters) !== 0) { if ($parameters !== null && \count($parameters) !== 0) {
$this->parameters = $parameters; $this->parameters = $parameters;
return true; return true;
} }
} }
@@ -107,6 +107,42 @@ class RouterRouteTest extends \PHPUnit\Framework\TestCase
$this->assertEquals('it, system', $response); $this->assertEquals('it, system', $response);
} }
public function testFixedDomain()
{
$result = false;
TestRouter::request()->setHost('admin.world.com');
TestRouter::group(['domain' => 'admin.world.com'], function () use (&$result) {
TestRouter::get('/test', function ($subdomain = null) use (&$result) {
$result = true;
});
});
TestRouter::debug('/test', 'get');
$this->assertTrue($result);
}
public function testFixedNotAllowedDomain()
{
$result = false;
TestRouter::request()->setHost('other.world.com');
TestRouter::group(['domain' => 'admin.world.com'], function () use (&$result) {
TestRouter::get('/', function ($subdomain = null) use (&$result) {
$result = true;
});
});
try {
TestRouter::debug('/', 'get');
} catch(\Exception $e) {
}
$this->assertFalse($result);
}
public function testDomainAllowedRoute() public function testDomainAllowedRoute()
{ {
$result = false; $result = false;