mirror of
https://github.com/skipperbent/simple-php-router.git
synced 2026-06-15 18:23:26 +03:00
- Optimised Input-classes. - `get` and `getObject` methods on `Input` now supports filtering on multiple method-types when using the `$method` parameter. - Input classes now know how to parse that stupid nested $_FILES array. - It's now possible to change method-names on ResourceControllers. - Removed `getValue` and `setValue` from `InputFile` classes. - Ensured that request-method are only parsed from $_POST or $_SERVER. - Fixed minor parameter-issues with subdomain routing. - Added PHPDocs. - Added even more unit-tests. - Many small optimisations tweaks.
95 lines
2.4 KiB
PHP
95 lines
2.4 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');
|
|
|
|
// Test array name
|
|
SimpleRouter::get('/my/fancy/url/1', 'DummyController@start', ['as' => 'fancy1']);
|
|
|
|
// Test method name
|
|
SimpleRouter::get('/my/fancy/url/2', 'DummyController@start')->setName('fancy2');
|
|
|
|
SimpleRouter::start();
|
|
|
|
$this->assertEquals('/my/fancy/url/1/', SimpleRouter::getUrl('fancy1'));
|
|
$this->assertEquals('/my/fancy/url/2/', SimpleRouter::getUrl('fancy2'));
|
|
|
|
}
|
|
|
|
} |