Merge pull request #424 from skipperbent/v4-release

V4 release
This commit is contained in:
Simon Sessingø
2018-08-24 17:24:48 +02:00
committed by GitHub
3 changed files with 325 additions and 368 deletions
+297 -356
View File
File diff suppressed because it is too large Load Diff
+1 -3
View File
@@ -152,8 +152,6 @@ abstract class Route implements IRoute
if (isset($this->where[$name]) === true) { if (isset($this->where[$name]) === true) {
$regex = $this->where[$name]; $regex = $this->where[$name];
} else { } else {
/* If method specific regex is defined use that, otherwise use the default parameter regex */
if ($parameterRegex !== null) { if ($parameterRegex !== null) {
$regex = $parameterRegex; $regex = $parameterRegex;
} else { } else {
@@ -161,7 +159,7 @@ abstract class Route implements IRoute
} }
} }
$regex = sprintf('(?:\/|\-)%1$s(?P<%2$s>%3$s)%1$s', $parameters[2][$key], $name, $regex); $regex = sprintf('((\/|\-)(?P<%2$s>%3$s))%1$s', $parameters[2][$key], $name, $regex);
} }
$urlRegex .= preg_quote($t, '/') . $regex; $urlRegex .= preg_quote($t, '/') . $regex;
+20 -2
View File
@@ -6,6 +6,24 @@ require_once 'Dummy/Exception/ExceptionHandlerException.php';
class RouterRouteTest extends \PHPUnit\Framework\TestCase class RouterRouteTest extends \PHPUnit\Framework\TestCase
{ {
/**
* Issue #421: Incorrectly optional character in route
*
* @throws Exception
*/
public function testOptionalCharacterRoute()
{
$result = false;
TestRouter::get('/api/v1/users/{userid}/projects/{id}/pages/{pageid?}', function () use (&$result) {
$result = true;
});
TestRouter::debug('/api/v1/users/1/projects/8399421535/pages/43/', 'get');
$this->assertTrue($result);
}
public function testMultiParam() public function testMultiParam()
{ {
$result = false; $result = false;
@@ -100,7 +118,6 @@ class RouterRouteTest extends \PHPUnit\Framework\TestCase
}); });
}); });
TestRouter::debug('/test', 'get'); TestRouter::debug('/test', 'get');
$this->assertTrue($result); $this->assertTrue($result);
@@ -133,7 +150,8 @@ class RouterRouteTest extends \PHPUnit\Framework\TestCase
$this->assertTrue(true); $this->assertTrue(true);
} }
public function testParameterDefaultValue() { public function testParameterDefaultValue()
{
$defaultVariable = null; $defaultVariable = null;