mirror of
https://github.com/skipperbent/simple-php-router.git
synced 2026-06-14 09:43:42 +03:00
109 lines
3.6 KiB
PHP
109 lines
3.6 KiB
PHP
<?php
|
|
|
|
require_once 'Dummy/DummyMiddleware.php';
|
|
require_once 'Dummy/DummyController.php';
|
|
require_once 'Dummy/Handler/ExceptionHandler.php';
|
|
|
|
class RouterRouteTest extends PHPUnit_Framework_TestCase {
|
|
|
|
|
|
public function testNotFound() {
|
|
|
|
\Pecee\Http\Request::getInstance()->setMethod('get');
|
|
\Pecee\Http\Request::getInstance()->setUri('/test-param1-param2');
|
|
|
|
\Pecee\SimpleRouter\SimpleRouter::group(['exceptionHandler' => 'ExceptionHandler'], function() {
|
|
\Pecee\SimpleRouter\SimpleRouter::get('/non-existing-path', 'DummyController@start');
|
|
});
|
|
|
|
$found = false;
|
|
|
|
try {
|
|
\Pecee\SimpleRouter\SimpleRouter::start();
|
|
}catch(\Exception $e) {
|
|
$found = ($e instanceof \Pecee\Exception\RouterException && $e->getCode() == 404);
|
|
}
|
|
|
|
$this->assertTrue($found);
|
|
|
|
}
|
|
|
|
public function testGet() {
|
|
|
|
\Pecee\SimpleRouter\RouterBase::getInstance()->getRequest()->setUri('/my/test/url');
|
|
\Pecee\SimpleRouter\RouterBase::getInstance()->getRequest()->setMethod('get');
|
|
|
|
\Pecee\SimpleRouter\SimpleRouter::get('/my/test/url', 'DummyController@start');
|
|
\Pecee\SimpleRouter\SimpleRouter::start();
|
|
}
|
|
|
|
public function testPost() {
|
|
\Pecee\SimpleRouter\RouterBase::getInstance()->getRequest()->setUri('/my/test/url');
|
|
\Pecee\Http\Request::getInstance()->setMethod('post');
|
|
|
|
\Pecee\SimpleRouter\SimpleRouter::post('/my/test/url', 'DummyController@start');
|
|
\Pecee\SimpleRouter\SimpleRouter::start();
|
|
}
|
|
|
|
public function testPut() {
|
|
\Pecee\SimpleRouter\RouterBase::getInstance()->getRequest()->setUri('/my/test/url');
|
|
\Pecee\Http\Request::getInstance()->setMethod('put');
|
|
|
|
\Pecee\SimpleRouter\SimpleRouter::put('/my/test/url', 'DummyController@start');
|
|
\Pecee\SimpleRouter\SimpleRouter::start();
|
|
}
|
|
|
|
public function testDelete() {
|
|
\Pecee\SimpleRouter\RouterBase::getInstance()->getRequest()->setUri('/my/test/url');
|
|
\Pecee\Http\Request::getInstance()->setMethod('delete');
|
|
|
|
\Pecee\SimpleRouter\SimpleRouter::delete('/my/test/url', 'DummyController@start');
|
|
\Pecee\SimpleRouter\SimpleRouter::start();
|
|
|
|
}
|
|
|
|
public function testMethodNotAllowed() {
|
|
\Pecee\SimpleRouter\RouterBase::getInstance()->getRequest()->setUri('/my/test/url');
|
|
\Pecee\Http\Request::getInstance()->setMethod('post');
|
|
|
|
\Pecee\SimpleRouter\SimpleRouter::get('/my/test/url', 'DummyController@start');
|
|
|
|
try {
|
|
\Pecee\SimpleRouter\SimpleRouter::start();
|
|
} catch(\Exception $e) {
|
|
$this->assertEquals(403, $e->getCode());
|
|
}
|
|
|
|
}
|
|
|
|
public function testSimpleParam() {
|
|
|
|
\Pecee\Http\Request::getInstance()->setMethod('get');
|
|
\Pecee\Http\Request::getInstance()->setUri('/test-param1');
|
|
|
|
\Pecee\SimpleRouter\SimpleRouter::get('/test-{param1}', 'DummyController@param');
|
|
\Pecee\SimpleRouter\SimpleRouter::start();
|
|
|
|
}
|
|
|
|
public function testMultiParam() {
|
|
|
|
\Pecee\Http\Request::getInstance()->setMethod('get');
|
|
\Pecee\Http\Request::getInstance()->setUri('/test-param1-param2');
|
|
|
|
\Pecee\SimpleRouter\SimpleRouter::get('/test-{param1}-{param2}', 'DummyController@param');
|
|
\Pecee\SimpleRouter\SimpleRouter::start();
|
|
|
|
}
|
|
|
|
public function testPathParam() {
|
|
|
|
\Pecee\Http\Request::getInstance()->setMethod('get');
|
|
\Pecee\Http\Request::getInstance()->setUri('/test/path/param1');
|
|
|
|
\Pecee\SimpleRouter\SimpleRouter::get('/test/path/{param}', 'DummyController@param');
|
|
\Pecee\SimpleRouter\SimpleRouter::start();
|
|
|
|
}
|
|
|
|
} |