mirror of
https://github.com/skipperbent/simple-php-router.git
synced 2026-06-15 18:23:26 +03:00
- Fixed updatae causing middlewares to sometimes load on wrong routes. - Converted project to PSR/2. - Updated InputCollection class and added get method for easy access to values. - Complete refactor of RouterBase. - Added findRoute method to RouterBase. - It's now possible to change parameter modifiers and symbol by overwriting properties on RouterBase. - Added RouterUrlTest unit-test for testing route-urls. - Added IRestController that can be easily implemented in custom ResourceController-classes. - It's now possible to use "-" instead of "_" when using getHeader method in Request class. - Added PHPDocs. - Fixed "/" route sometimes returning "//" as url. - Optimisations and bugfixes.
92 lines
2.0 KiB
PHP
92 lines
2.0 KiB
PHP
<?php
|
|
|
|
require_once 'Dummy/DummyMiddleware.php';
|
|
require_once 'Dummy/DummyController.php';
|
|
|
|
use Pecee\SimpleRouter\SimpleRouter as SimpleRouter;
|
|
|
|
class GroupTest extends PHPUnit_Framework_TestCase
|
|
{
|
|
protected $result;
|
|
|
|
public function testGroupLoad()
|
|
{
|
|
$this->result = false;
|
|
|
|
SimpleRouter::group(['prefix' => '/group'], function () {
|
|
$this->result = true;
|
|
});
|
|
|
|
try {
|
|
SimpleRouter::start();
|
|
} catch (Exception $e) {
|
|
// ignore RouteNotFound exception
|
|
}
|
|
|
|
$this->assertTrue($this->result);
|
|
}
|
|
|
|
public function testNestedGroup()
|
|
{
|
|
|
|
SimpleRouter::router()->reset();
|
|
SimpleRouter::request()->setUri('/api/v1/test');
|
|
SimpleRouter::request()->setMethod('get');
|
|
|
|
SimpleRouter::group(['prefix' => '/api'], function () {
|
|
|
|
SimpleRouter::group(['prefix' => '/v1'], function () {
|
|
SimpleRouter::get('/test', 'DummyController@start');
|
|
});
|
|
|
|
});
|
|
|
|
SimpleRouter::start();
|
|
}
|
|
|
|
public function testManyRoutes()
|
|
{
|
|
|
|
SimpleRouter::router()->reset();
|
|
SimpleRouter::request()->setUri('/my/match');
|
|
SimpleRouter::request()->setMethod('get');
|
|
|
|
SimpleRouter::group(['prefix' => '/api'], function () {
|
|
|
|
SimpleRouter::group(['prefix' => '/v1'], function () {
|
|
SimpleRouter::get('/test', 'DummyController@start');
|
|
});
|
|
|
|
});
|
|
|
|
SimpleRouter::get('/my/match', 'DummyController@start');
|
|
|
|
SimpleRouter::group(['prefix' => '/service'], function () {
|
|
|
|
SimpleRouter::group(['prefix' => '/v1'], function () {
|
|
SimpleRouter::get('/no-match', 'DummyController@start');
|
|
});
|
|
|
|
});
|
|
|
|
SimpleRouter::start();
|
|
}
|
|
|
|
public function testUrls()
|
|
{
|
|
|
|
SimpleRouter::router()->reset();
|
|
SimpleRouter::request()->setUri('/my/fancy/url/1');
|
|
SimpleRouter::request()->setMethod('get');
|
|
|
|
SimpleRouter::get('/my/fancy/url/1', 'DummyController@start', ['as' => 'fancy1']);
|
|
SimpleRouter::get('/my/fancy/url/2', 'DummyController@start')->setAlias('fancy2');
|
|
|
|
SimpleRouter::start();
|
|
|
|
$this->assertTrue((SimpleRouter::getRoute('fancy1') === '/my/fancy/url/1/'));
|
|
$this->assertTrue((SimpleRouter::getRoute('fancy2') === '/my/fancy/url/2/'));
|
|
|
|
}
|
|
|
|
} |